検索
ホームページウェブフロントエンドhtmlチュートリアルフロントエンドのさまざまな指の練習_html/css_WEB-ITnose

タイトルを見ると少し興味があるかもしれませんが、読んだら指の練習が何であるかわかります~

目次

  • はじめに
  • 原理
  • コアライブラリ
  • 実装
    • キーフレーム/イメージ調整
    • スプライトシート
    • プログレスバー
  • 発生する可能性のある問題
  • 関連ツール
  • アクセスアドレス
  • 前に書いてください(特に注意してください)モバイル端末でアニメーションを作成する場合、 topbottomBackground-positionなどの要素は、JSアニメーションでもCSSアニメーションでもアニメーション化されます。主にブラウザのリフロー、再描画、合成などに使用できるのは 4 つだけです (GPU アクセラレーションを有効にするには translateZ(0) を追加する必要があります): translatescaleopacityrotate。詳細については、以下を参照してください:
    • 高性能アニメーション
    • 各CSS要素のレンダリングステータス
    • 高性能モバイルWeb開発
    • レンダリング:再描画、リフロー/リレイアウト、再スタイル
  • はじめに

    何もない視差スクロールには、誰もが興味を持っていますが (もう人気はありませんが)、まずは試してその効果を確認することにしました。

    • クリップデモ (フルバージョンのアクセスアドレスは最後にあります)

    パート 1

    パート 3

    第4部

  • 原則
視差スクロール効果は少し使用されていますが、これは多くのマテリアルとは異なり、本質的には、異なるレイヤーが異なる速度で移動することです。たとえば、電車に乗っているとき、遠くにあるオブジェクトはゆっくりと移動します。近くの物体は非常に速く動きますが、この速度差はリファレンス デモとして人工的に実現されています。
  • 参考:

    視差スクロールの原理の紹介

    視差スクロール
    • 視差スクロール関連
    • 視差スクロール
    • いくつかのアニメーションと組み合わせると、次の素晴らしいページを入手できます:

    参考デモ:

    http://tedxguc.com/

    http://everylastdrop.co.uk/
    • http://nasaprospect.com/
  • のコアライブラリ上記の効果を実現するために、私は skrollr ライブラリを選択しました。CSS を理解していれば、この効果を再生できます。一般的に、私は skrollr を使用しました

    多目的に動作します。デスクトップでもモバイルでもとても使いやすいです
    • zepto
      • 言うまでもなく
    • 画像のプリロードは非常にシンプルで素晴らしいです
      • 実装
      • キーフレーム/画像の調整
      skrollrを初期化する前に、画像にいくつかの調整を行う必要があります。まず、画像を選択した後、携帯電話に表示されたときに画像が変形しないことを確認する必要があります。そのため、さまざまな携帯電話の画面サイズに応じて画像を調整し、結果の画像に基づいて終了キーフレームを設定する必要があります。
  • background は終了キーフレームの比率を設定します
<section class="scene1 fullpage"           data-6300="transform:translate3d(0,0%,0);display:block"            data-10000="transform:translate3d(0,-100%,0);display:block"           data-30000="transform:translate3d(0,-100%,0);display:block"           data-33000="transform:translate3d(0,-130%,0);display:none"></section>

    以下に示すように、横長の画像の場合は、まず携帯電話の高さを優先して画像の高さを設定します。携帯電話の画像の比率に応じて画像の長さを設定します。縦方向に表示される画像の場合も、方法は同様で、コードは非常に簡単です。
    • 横長画像

      $.plug.background(true,".scene1-1",6700,$.plug.ratio(true,1080,1920,".scene1-1"));$.plug.background(false,".scene2-1",18000,$.plug.ratio(false,4500,1667,".scene2-1"));$.plug.background(false,".scene2-2",22000,$.plug.ratio(false,4500,1667,".scene2-2"));$.plug.background(false,".scene3-1",42000,$.plug.ratio(false,3840,2160,".scene3-1"));$.plug.background(false,".scene3-2",48000,$.plug.ratio(false,3840,2160,".scene3-2"));$.plug.background(false,".scene4-1",58000,$.plug.ratio(false,2560,1496,".scene4-1"));$.plug.background(false,".scene4-2",62000,$.plug.ratio(false,2560,1496,".scene4-2"));$.plug.background(false,".scene5-1",76000,$.plug.ratio(false,2857,1216,".scene5-1"));$.plug.background(false,".scene6-1",112000,$.plug.ratio(false,800,800,".scene6-1"));$.plug.background(true,".scenev-1-1",94000,$.plug.ratio(true,600,1200,".scenev-1-1"));$.plug.background(true,".scenev-1-2",98000,$.plug.ratio(true,600,1200,".scenev-1-2"));$.plug.background(true,".scenev-1-3",102000,$.plug.ratio(true,600,1200,".scenev-1-3"));
      まずコンテナのサイズを決定し、いくつかの小さな白い div を初期化し、CSS3 アニメーションを使用してそれらを連続的に回転させる、これは星の感覚です。そして、前景と背景の移動速度の違いに基づいて視差スクロールが発生します。アニメーションの場合、ほとんどの場合、transform:translate3d が使用され、パーセントでアニメーション化することは、親要素ではなく、独自の要素に基づいて行われることを意味します。したがって、一部の小さな要素が 100% 移動することは同等です。独自のサイズの問題を解決するには、すべての要素をフルページの div に配置します。

      (function($){ function ratio(iswidth,width,height,dom,scale,isback){     var ratioo=scale||1;     var ratio=width/height;      if(iswidth){                    var wi=window.innerWidth*ratioo;          var numb=Math.round(wi/ratio);          var _pxheight=numb+"px";          document.querySelector(dom).style.height=_pxheight;          return numb;      }      else{          var he=window.innerHeight*ratioo;          var numb=Math.round(he*ratio);          var _pxwidth=numb+"px";            document.querySelector(dom).style.width=_pxwidth;        return numb;      }        }  if(!$.plug)$.plug={}; $.plug.ratio=ratio;        })($)

      このネストされた要素を移動して、異なる速度で移動させることができます。数値の実装。

      展望

      背景

      前景

      背景


    • spritesheet

      对游戏制作的同学不会肯定不会陌生

      行走

      这样的代码一大堆,我贴个自己实现的,简单再说一下对于这个5793*158的spritesheet,如果在手机上显示高度为100px,则宽度为5793/1.58=3666px,则每次spritesheet移动的距离为3666px/36(动画一共有36帧)=102px,对应下面的JS代码中的interval参数,同时为了停止有个缓冲,加了个停止帧stopframe参数。

      (function($){   function animate(totaltime,dom,parts,interval,stopframe){           var temp=0;           var stop_flag=false;           var timer=null;               var num=temp*(interval);               $(dom).css({"background-position-x":num+"px"});               temp++;               if(stop_flag&&temp===stopframe){                   clearInterval(timer),timer=null                   stop_flag=false;               }               if(temp===parts)temp=0;           return {               animating:function(){return timer!==null?true:false},               stop:function(va){                   stop_flag=true;                   //clearInterval(timer),timer=null               },               resume:function(){                       if(timer!==null)return                       var str=$(dom).css("background-position-x");                       var matched=str.match(/-?[0-9]+/);                       var num=parseInt(matched[0]);                       temp=num/interval;                       timer=setInterval(function(){                       var num=temp*(interval);                       $(dom).css({"background-position-x":num+"px"});                       temp++;                       if(stop_flag&&temp===stopframe){                           clearInterval(timer),timer=null                           stop_flag=false;                       }                       if(temp===parts)temp=0                   },totaltime/parts);               }           }           //$(dom)       }               if(!$.plug)$.plug={};       $.plug.animate=animate;})($)

    • progressbar

      progressbar的实现使用了2个半圆的形式 利用border-radius:50%做一个圆,再利用clip: rect(0,auto,auto,50px)裁切为半圆。

      右半圆旋转

      之后再从垂直正中开始裁切clip: rect(0,auto,auto,50px);

      clip裁切

      左半圆类似:

      左半圆旋转

      clip裁切

      将2个区域合并:

      饼图效果

      加一个背景色相同的mask覆盖在中间,这样的好处是圆环宽度可以方便调整:

      加个背景颜色相同的覆盖在中间

      之后就可以通过代码设置其百分比:

                (function($){              function circleprogress(dom,value){                                                     $(dom).each(function(index, el) {                var num = value * 3.6;                num=Math.round(num);                if (num<=180) {                    $(this).find('.right').css('-webkit-transform', "rotate(" + num + "deg) translateZ(0px)");                    $(this).find('.right').css('transform', "rotate(" + num + "deg) translateZ(0px)");                     $(this).find('.left').css('-webkit-transform', "rotate("+0+ "deg) translateZ(0px)");                    $(this).find('.left').css('transform', "rotate("+0+ "deg) translateZ(0px)");                } else {                    $(this).find('.right').css('-webkit-transform', "rotate(180deg) translateZ(0px)");                    $(this).find('.left').css('-webkit-transform', "rotate(" + (num - 180) + "deg) translateZ(0px)");                    $(this).find('.right').css('transform', "rotate(180deg) translateZ(0px)");                    $(this).find('.left').css('transform', "rotate(" + (num - 180) + "deg) translateZ(0px)");                };            });        }                if(!$.plug)$.plug={};        $.plug.circleprogress=circleprogress;})($)

      在滑动的过程中,配置好滑动的区间即可:

                        if(data.curTop>=20000 && data.curTop<25000){                        var num=Math.round((data.curTop-20000)/55);                        $('.circle-1').find('span.value').text(num);                        $.plug.circleprogress('.circle-1',num);                    }

  • 可能会遇到的问题 对于配置稍低的手机,比如我的4S,在场景越来越多,图片越来越多的情况下,不管是在微信中打开还是原生浏览器中打开,都会把微信和浏览器弄崩溃。。期间尝试了各种优化,把所有关于layoutpaint的动画部分都替换,情况稍微好一些,但是还是有崩溃的现象。最后发现网页加载时要对所有的场景进行渲染,即便这些场景一开始并不需要出现。所以根据动画情况,将需要出现的场景动态显示,且在css中加入下面的语句,让所有场景及信息一开始都不渲染。
        .scene1,.scene2,.scene3,.scene4,.scene5,.scene6,.infomation{      display: none;      }
    最后根据skrollr的值来选择显示的场景。

    通过这样的做,我的4s终于再也不崩溃了,即便在有些低配手机还是有点卡。


  • 相关工具
    • 图片压缩
    • 图像处理:不管是jpg还是 gif都能去除背景,强烈推荐,特别是gif功能,相当好用
    • 字体
    • webfont/icon
    • 图片处理:国内工具

    再贴几个图像处理工具,都是在线的,相当不错

    • http://animizer.net/en/gif-apng-converter 很强大,有自动根据 gif生成spritesheet的功能,不过有时候生成的效果不大好
    • http://www190.lunapic.com/editor/?action=transparent
    • http://ezgif.com/

    这些图像处理网站后台可能用的的是imagemagick(瞎猜的)

  • 作为一个程序员如何找图片及配色
    • 图片:

      都是免费无水印,但是还是自己用就好了

      • 设计导航
      • wallhaven: 高分辨率大图
      • dribbble:不用多说 很多素材都来自这,也有很多gif
      • freepik
      • gif: gif集合
      • vectorhq
      • Pinterest
      • 站酷
      • freevectors
      • icon
      • freevec
    • 配色:

      本人喜欢flat扁平化的风格,所以都是相关的颜色

      • フラット UI カラー
      • クーラー
      • flatuicolorpick
      • マテリアル デザイン
      • フラットカラー

      まず、上記の Web サイトで好きな色をいくつか見つけてから、以下の Web サイトにアクセスして、関連する補色などを生成します。 colorhexa : カラー分析、色を入力し、そのプロパティを分析しますパレット: 非常に使いやすい色選択ツールで、効果も確認できます


  • アドレスにアクセス
    • 携帯電話を使用して、直接表示 ここをクリックしてアクセスします (デバッグをオンにして効果を確認することもできます)
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
HTML、CSS、およびJavaScriptの未来:Web開発動向HTML、CSS、およびJavaScriptの未来:Web開発動向Apr 19, 2025 am 12:02 AM

HTMLの将来の傾向はセマンティクスとWebコンポーネントであり、CSSの将来の傾向はCSS-in-JSとCSShoudiniであり、JavaScriptの将来の傾向はWebAssemblyとServerLessです。 1。HTMLセマンティクスはアクセシビリティとSEO効果を改善し、Webコンポーネントは開発効率を向上させますが、ブラウザの互換性に注意を払う必要があります。 2。CSS-in-JSは、スタイル管理の柔軟性を高めますが、ファイルサイズを増やす可能性があります。 CSShoudiniは、CSSレンダリングの直接操作を可能にします。 3. Webassemblyブラウザーアプリケーションのパフォーマンスを最適化しますが、急な学習曲線があり、サーバーレスは開発を簡素化しますが、コールドスタートの問題の最適化が必要です。

HTML:構造、CSS:スタイル、JavaScript:動作HTML:構造、CSS:スタイル、JavaScript:動作Apr 18, 2025 am 12:09 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

HTMLの未来:ウェブデザインの進化とトレンドHTMLの未来:ウェブデザインの進化とトレンドApr 17, 2025 am 12:12 AM

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

HTML対CSS対JavaScript:比較概要HTML対CSS対JavaScript:比較概要Apr 16, 2025 am 12:04 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。

HTML:それはプログラミング言語か何か他のものですか?HTML:それはプログラミング言語か何か他のものですか?Apr 15, 2025 am 12:13 AM

htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

HTML:Webページの構造の構築HTML:Webページの構造の構築Apr 14, 2025 am 12:14 AM

HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

テキストからウェブサイトへ:HTMLの力テキストからウェブサイトへ:HTMLの力Apr 13, 2025 am 12:07 AM

HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

HTML、CSS、およびJavaScriptの理解:初心者向けガイドHTML、CSS、およびJavaScriptの理解:初心者向けガイドApr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。