最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js實現(xiàn)手機web圖片左右滑動效果

 更新時間:2017年12月29日 11:18:05   作者:peachesTao  
這篇文章主要為大家詳細介紹了js實現(xiàn)手機web圖片左右滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下

最近在做一個手機端web站點,里面有一個圖片展示效果:

1、點擊任意圖片時圖片全屏展示,左右滑動能展示其他的圖片。
2、滑動超過一定范圍自動滑到下一張圖片,不超過則回退到當前照片位置。此處的滑動要帶動畫效果

實現(xiàn):

每張圖片外面一個div,將其寬度設(shè)置為100%,最外層有一個div[命名為outerDiv],其寬度設(shè)為:總圖片數(shù)量*100+‘%'。給最外層div設(shè)置touchstart,touchmove,touchend事件監(jiān)聽處理函數(shù),在touchmove中根據(jù)移動的x軸距離動態(tài)改變outerDiv的x軸距離即可實現(xiàn)圖片滑動效果,在touchend中根據(jù)當前滑動的距離判斷滑動到下一張還是回退當前圖片位置。

之前我們可以通過設(shè)置outerDiv的position屬性,然后改變left值實現(xiàn)移動效果,這里我用的是css3的動畫函數(shù)transform,簡單,且可以實現(xiàn)動畫效果

transform參數(shù):

-webkit-transform:translate(100px,200px) tr //可以設(shè)置x、y軸方向移動距離
-webkit-transform:translateX(100px) translateY(200px) translateZ(3000px) 

//可以設(shè)置x、y、z軸方向移動距離.3D效果
-webkit-transition:.4s ease;//設(shè)置動畫時間


定義動畫時間:

.transition {
  -webkit-transition:.4s ease;
  -moz-transition:.4s ease;
  -ms-transition:.4s ease;
  -o-transition: .4s ease;
  transition:.4s ease;
}

關(guān)鍵代碼:

var touchOption={touchStartX:0,startTranslateX:0,moveDistance:0};

1、touchstart

outerDiv.addEventListener('touchstart',function(){
$(this).removeClass('transition');//移除動畫效果,否則移動時圖片會顫動
touchOption.touchStartX = e.touches[0].clientX;
        if ($(this).css("-webkit-transform") == 'none') {
          touchOption.startTranslateX = 0;
        }
        else {
          //css-webkit-transform屬性值格式:matrix(1, 0, 0, 1, -4140, 0)
          var transfrom_info = $('.sourcePhotoDiv').css("-webkit-transform").split(',')[4];//獲取當前outerDiv的x軸坐標
          touchOption.startTranslateX = parseInt(transfrom_info);
        }
},false);

2、touchmove

outerDiv.addEventListener('touchmove',function(){
       touchOption.moveDistance = (e.touches[0].clientX - touchOption.touchStartX);
        var TranslateX = touchOption.startTranslateX + touchOption.moveDistance;
        $(this).css('-webkit-transform', 'translateX('+ TranslateX +'px) translateZ(0)'); //移動圖片
},false);

3、touchend

outerDiv.addEventListener('touchend',function(){
      $(this).addClass('transition);//添加動畫效果
       var moveX=100;//此處計算移動移動下一張圖片還是退貨當前圖片代碼省略       
        $(this).css('-webkit-transform', 'translateX('+ moveX +'px) translateZ(0)'); //移動圖片
},false);

總結(jié):

1、outerDiv的動畫參數(shù)和效果都是js動態(tài)添加的,不需要事先定義
2、用translate(x,y)這種參數(shù)時,圖片移動時會顫動
3、用translateX() 且?guī)ranslateZ(0)時圖片移動正常,不帶translateZ(0)同樣出現(xiàn)顫動
4、如果用的是translateX(moveX) ranslateZ(0)這種格式,如果moveX用的是百分比值,如‘50%',在android手機自動瀏覽器和uc瀏覽器中則沒有動畫效果,用px單位值則正常

為防止圖片移動過程顫動和保證動畫效果,建議大家用translateX(100px) ranslateZ(0)這種參數(shù),且移動距離用px值

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在mpvue框架中使用Vant WeappUI組件庫的注意事項【推進】

    在mpvue框架中使用Vant WeappUI組件庫的注意事項【推進】

    這篇文章主要介紹了在mpvue框架中使用Vant WeappUI組件庫的注意事項,本文給大家提到了引入組件庫的兩種方法,需要的朋友可以參考下
    2019-06-06
  • TypeScript中函數(shù)重載寫法

    TypeScript中函數(shù)重載寫法

    這篇文章主要介紹了TypeScript中函數(shù)重載寫法,TypeScript 提供了函數(shù)重載功能,下面文章圍繞TypeScript函數(shù)重載續(xù)航管資料展開內(nèi)容,具有一定得參考價值,需要的朋友可以參考一下
    2021-12-12
  • 用JavaScript實現(xiàn)動畫效果的方法

    用JavaScript實現(xiàn)動畫效果的方法

    大家在使用Dreamweaver中的時間線功能或以做出很有趣的動畫效果,Dreamweaver會自動為用戶生成特定的程序代碼,大家有沒有想過動畫的實現(xiàn)原理呢?
    2013-07-07
  • JavaScript字符串處理常見操作方法小結(jié)

    JavaScript字符串處理常見操作方法小結(jié)

    這篇文章主要介紹了JavaScript字符串處理常見操作方法,結(jié)合實例形式分析了JavaScript字符串操作常見的轉(zhuǎn)換、截取、分割、獲取等相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-11-11
  • 實現(xiàn)無刷新聯(lián)動例子匯總

    實現(xiàn)無刷新聯(lián)動例子匯總

    最近在用asp.net做項目的時候,遇到需要實現(xiàn)無刷新聯(lián)動的需求,度娘了一下,這里匯總一下幾個比較實用的例子,有需要的小伙伴可以參考下。
    2015-05-05
  • 最新評論

    镇远县| 新乐市| 定结县| 宁南县| 泗洪县| 博乐市| 沽源县| 太康县| 伊吾县| 苏州市| 郧西县| 揭东县| 平和县| 白沙| 溆浦县| 文登市| 青岛市| 苏尼特右旗| 满城县| 濮阳县| 呼和浩特市| 镇江市| 柞水县| 昔阳县| 哈巴河县| 鸡西市| 锡林浩特市| 临颍县| 遵义市| 五莲县| 普兰县| 定安县| 杭锦后旗| 孝昌县| 河间市| 阿克苏市| 尉氏县| 镇康县| 明溪县| 南郑县| 阿拉善右旗|