日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > HTML > 正文

怎樣實現H5+CSS3手指滑動切換圖片的示例代碼

2024-08-26 00:21:26
字體:
來源:轉載
供稿:網友

包含3個文件:html、slider-H5.js、jquery.js。在html中可配置滑動參數。具體代碼如下:

HTML代碼:

<!DOCTYPE HTML><html>        <head>        <meta charset="utf-8" />        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />        <meta name="viewport" content="width=device-width, target-densitydpi=high-dpi, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"        />        <meta name="apple-mobile-web-app-capable" content="yes" />        <meta name="apple-mobile-web-app-status-bar-style" content="black" />        <meta content="telephone=no" name="format-detection" />        <meta name="keywords" content="seokeywords" />        <meta name="description" content="seodescription" />        <title>            H5手指滑動切換圖片        </title>        <style>            ul,li{margin:0;padding:0;} @media screen and (min-width:240px) { html,            body{ font-size:9px; } } @media screen and (min-width:320px) { html, body{            font-size:12px; } } @media screen and (min-width:480px) { html, body{ font-size:18px;            } } @media screen and (min-width:640px) { html, body{ font-size:24px; }            } @media screen and (min-width:960px) { html, body{ font-size:36px; } }            div.imgbox{width:25rem;height:16.5rem;overflow:hidden;margin:0 auto;} div.imgbox            ul{clear:both;width:75rem;display: inline-block;} div.imgbox ul li{float:left;width:25rem;height:16.5rem;overflow:hidden;text-align:center;}            div.imgbox ul li img{width:24rem;height:16.5rem;} #page{color:red;}        </style>                       </head>                                           <body>        <div class="imgbox">            <ul>                <li>                    <a href="#">                        <img src="http://y2.ifengimg.com/df84c07b46e03f8e/2014/0512/rdn_53708f3d8533e.jpg">                        </img>                    </a>                </li>                <li>                                          <a href="#">                        <img src="http://y2.ifengimg.com/df84c07b46e03f8e/2014/0512/rdn_53708f23aad06.jpg">                        </img>                    </a>                </li>                <li>                    <a href="#">                        <img src="http://y2.ifengimg.com/df84c07b46e03f8e/2014/0512/rdn_53708f345282b.jpg">                        </img>                    </a>                </li>            </ul>        </div>        <div>            這里通過回調顯示當前滾動到多少頁:            <span id="page">                0            </span>        </div>        <script src="jquery-1.10.2yuan.js">        </script>        <script src="slider-H5.js">        </script>        <script>            (function() {                /*    注意:$.mggScrollImg返回的scrollImg對象上有            next,prev,go三個方法,可以實現外部對滾動索引的控制。    如:scrollImg.next();//會切換到下一張圖片        scrollImg.go(0);//會切換到第一張圖片*/                var scrollImg = $.mggScrollImg('.imgbox ul', {                    loop: true,                    //循環切換                    auto: true,                    //自動切換                    auto_wait_time: 3000,                    //輪播間隔                    scroll_time: 300,                    //滾動時長                    callback: function(ind) { //這里傳過來的是索引值                        $('#page').text(ind + 1);                    }                });            })()        </script>    </body></html>  

slider-H5.js 代碼:

(function($) {    /*        圖片滾動效果        @jQuery or @String box : 滾動列表jQuery對象或者選擇器 如:滾動元素為li的外層ul        @object config : {                @Number width : 一次滾動寬度,默認為box里面第一個一級子元素寬度[如果子元素寬度不均勻則滾動效果會錯亂]                @Number size : 列表長度,默認為box里面所有一級子元素個數[如果size不等于一級子元素個數,則不支持循環滾動]                @Boolean loop : 是否支持循環滾動 默認 true                @Boolean auto : 是否自動滾動,支持自動滾動時必須支持循環滾動,否則設置無效,默認為true                @Number auto_wait_time : 自動輪播一次時間間隔,默認為:3000ms                @Function callback : 滾動完回調函數,參入一個參數當前滾動節點索引值            }    */    function mggScrollImg(box, config) {        this.box = $(box);        this.config = $.extend({},        config || {});        this.width = this.config.width || this.box.children().eq(0).width(); //一次滾動的寬度        this.size = this.config.size || this.box.children().length;        this.loop = this.config.loop !== undefined ? (this.config.loop == true ? true: false) : true; //默認能循環滾動        this.auto = this.config.auto !== undefined ? (this.config.auto == true ? true: false) : true; //默認自動滾動        this.auto_wait_time = this.config.auto_wait_time || 3000; //輪播間隔        this.scroll_time = this.config.scroll_time !== undefined ? (this.config.scroll_time > 0 ? this.config.scroll_time: 0) : 300; //滾動時長        this.minleft = -this.width * (this.size - 1); //最小left值,注意是負數[不循環情況下的值]        this.maxleft = 0; //最大lfet值[不循環情況下的值]        this.now_left = 0; //初始位置信息[不循環情況下的值]        this.point_x = null; //記錄一個x坐標        this.point_y = null; //記錄一個y坐標        this.move_left = false; //記錄向哪邊滑動        this.index = 0;        this.busy = false;        this.timer;        this.init();    }                                         $.extend(mggScrollImg.prototype, {        init: function() {            this.bind_event();            this.init_loop();            this.auto_scroll();        },        bind_event: function() {            var self = this;            self.box.bind('touchstart',            function(e) {                var t = e.touches ? e.touches: e.originalEvent.targetTouches;                if (t.length == 1 && !self.busy) {                    self.point_x = t[0].screenX;                    self.point_y = t[0].screenY;                }            }).bind('touchmove',            function(e) {                var t = e.touches ? e.touches: e.originalEvent.targetTouches;                if (t.length == 1 && !self.busy) {                    return self.move(t[0].screenX, t[0].screenY); //這里根據返回值覺得是否阻止默認touch事件                }            }).bind('touchend',            function(e) { ! self.busy && self.move_end();            });        },        /*            初始化循環滾動,當一次性需要滾動多個子元素時,暫不支持循環滾動效果,            如果想實現一次性滾動多個子元素效果,可以通過頁面結構實現            循環滾動思路:復制首尾節點到尾首        */        init_loop: function() {            if (this.box.children().length > 1 && this.box.children().length == this.size && this.loop) { //暫時只支持size和子節點數相等情況的循環                this.now_left = -this.width; //設置初始位置信息                this.minleft = -this.width * this.size; //最小left值                this.maxleft = -this.width;                this.box.prepend(this.box.children().eq(this.size - 1).clone()).append(this.box.children().eq(1).clone()).css(this.get_style(2));                this.box.css('width', this.width * (this.size + 2));            } else {                this.loop = false;                this.box.css('width', this.width * this.size);            }                                   },        auto_scroll: function() { //自動滾動            var self = this;            if (!self.auto) return;            clearTimeout(self.timer);            self.timer = setTimeout(function() {                self.go_index(self.index + 1);            },            self.auto_wait_time);        },        go_index: function(ind) { //滾動到指定索引頁面            var self = this;            if (self.busy) return;            clearTimeout(self.timer);            self.busy = true;            if (self.loop) { //如果循環                ind = ind < 0 ? -1 : ind;                ind = ind > self.size ? self.size: ind;            } else {                ind = ind < 0 ? 0 : ind;                ind = ind >= self.size ? (self.size - 1) : ind;            }            if (!self.loop && (self.now_left == -(self.width * ind))) {                self.complete(ind);            } else if (self.loop && (self.now_left == -self.width * (ind + 1))) {                self.complete(ind);            } else {                if (ind == -1 || ind == self.size) { //循環滾動邊界                    self.index = ind == -1 ? (self.size - 1) : 0;                    self.now_left = ind == -1 ? 0 : -self.width * (self.size + 1);                } else {                    self.index = ind;                    self.now_left = -(self.width * (self.index + (self.loop ? 1 : 0)));                }                self.box.css(this.get_style(1));                setTimeout(function() {                    self.complete(ind);                },                self.scroll_time);            }        },        complete: function(ind) { //動畫完成回調            var self = this;            self.busy = false;            self.config.callback && self.config.callback(self.index);            if (ind == -1) {                self.now_left = self.minleft;            } else if (ind == self.size) {                self.now_left = self.maxleft;            }            self.box.css(this.get_style(2));            self.auto_scroll();        },        next: function() { //下一頁滾動            if (!this.busy) {                this.go_index(this.index + 1);            }        },        prev: function() { //上一頁滾動            if (!this.busy) {                this.go_index(this.index - 1);            }                                     },        move: function(point_x, point_y) { //滑動屏幕處理函數            var changeX = point_x - (this.point_x === null ? point_x: this.point_x),            changeY = point_y - (this.point_y === null ? point_y: this.point_y),            marginleft = this.now_left,            return_value = false,            sin = changeY / Math.sqrt(changeX * changeX + changeY * changeY);            this.now_left = marginleft + changeX;            this.move_left = changeX < 0;            if (sin > Math.sin(Math.PI / 3) || sin < -Math.sin(Math.PI / 3)) { //滑動屏幕角度范圍:PI/3  -- 2PI/3                return_value = true; //不阻止默認行為            }            this.point_x = point_x;            this.point_y = point_y;            this.box.css(this.get_style(2));            return return_value;        },        move_end: function() {            var changeX = this.now_left % this.width,            ind;            if (this.now_left < this.minleft) { //手指向左滑動                ind = this.index + 1;            } else if (this.now_left > this.maxleft) { //手指向右滑動                ind = this.index - 1;            } else if (changeX != 0) {                if (this.move_left) { //手指向左滑動                    ind = this.index + 1;                } else { //手指向右滑動                    ind = this.index - 1;                }            } else {                ind = this.index;            }            this.point_x = this.point_y = null;            this.go_index(ind);        },        /*            獲取動畫樣式,要兼容更多瀏覽器,可以擴展該方法            @int fig : 1 動畫 2  沒動畫        */        get_style: function(fig) {            var x = this.now_left,            time = fig == 1 ? this.scroll_time: 0;            return {                '-webkit-transition': '-webkit-transform ' + time + 'ms',                '-webkit-transform': 'translate3d(' + x + 'px,0,0)',                '-webkit-backface-visibility': 'hidden',                'transition': 'transform ' + time + 'ms',                'transform': 'translate3d(' + x + 'px,0,0)'            };        }               });    /*        這里對外提供調用接口,對外提供接口方法        next :下一頁        prev :上一頁        go :滾動到指定頁    */    $.mggScrollImg = function(box, config) {        var scrollImg = new mggScrollImg(box, config);        return { //對外提供接口            next: function() {                scrollImg.next();            },            prev: function() {                scrollImg.prev();            },            go: function(ind) {                scrollImg.go_index(parseInt(ind) || 0);            }        }    }})(jQuery)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产成人精品网址| 欧美久久久久久蜜桃| 欧美日韩高清在线| 在线亚洲免费| 日本亚洲欧美三级| 中文亚洲欧美| 国产资源在线观看| 国产一级粉嫩xxxx| 中文字幕国产欧美| 中文字幕亚洲乱码| 一级片在线免费看| 午夜国产视频 | 欧美日韩高清在线一区| 在线观看区一区二| 欧美日韩国产在线看| 欧美日韩第一区日日骚| 中文网丁香综合网| 区日韩二区欧美三区| 国产乱国产乱300精品| 91精品国产自产观看在线| 精品日韩一区二区三区免费视频| 成年人看的羞羞网站| 国产欧美日韩高清| 国产在线中文字幕| 一区二区三区在线播放欧美| 一区二区高清在线| 国产激情久久| 国产在线不卡一区| 国产欧美久久久精品影院| 亚洲电影中文字幕在线观看| 中文字幕欧美日韩精品| 日韩 欧美 综合| 日韩欧美国产视频| 一区二区三区在线免费| 欧美日韩国产观看视频| 日韩精品在线免费观看视频| 亚洲一区在线观看免费| 中文字幕精品国产| 91精品国产高清91久久久久久| 97caopor国产在线视频| 国产99在线 | 亚洲| 日韩中文字幕在线视频播放| 欧美日韩国产在线看| 91精品国产日韩91久久久久久| 精品国产欧美日韩| 日韩欧美一级精品久久| 日韩在线视频一区| 国产欧美自拍一区| 91精品久久久久久久久久| 亚洲综合日韩| 欧美日韩午夜精品| 中文天堂资源在线| 日韩不卡一二三区| 日韩欧美99| 成人ww免费完整版在线观看| 欧美91精品| 在线观看国产一区| 在线观看91精品国产入口| 亚洲免费播放| 在线资源av| 欧美日韩在线精品一区二区三区激情综| 国产主播中文字幕| 成人精品国产福利| 精品视频在线导航| 亚洲视频 中文字幕| 欧美日韩精品综合在线 | 亚洲中午字幕| 日韩精品中文字幕第1页| 欧美日韩精品三区| 日韩在线中文视频| 在线观看免费国产成人软件| 日韩精品免费观看视频| 国产日韩成人精品| 欧洲精品在线一区| 日韩免费精品视频| 欧美日韩一二三| 亚洲免费专区| 1024国产在线| 亚洲福利视频专区| 国产中文伊人| 日韩欧美中文字幕视频| 国产www在线观看| 一区二区日韩av| 日韩中文字幕在线视频播放| 午夜精品免费视频| 91精品国产综合久久久久久| 在线免费视频一区二区| 亚洲第一香蕉网| 亚洲一区在线观看免费| 欧美日韩国产999| 伊人www22综合色| 欧美日韩综合在线| 国产三级第一页| 日韩视频一区| 二区视频在线观看| a天堂在线资源| 内射国产内射夫妻免费频道| 精品调教chinesegay| 久久中文精品| 亚洲第一中文字幕在线观看| 国产在线视频一区二区| 中文字幕线观看| 精品色蜜蜜精品视频在线观看| 日韩一二三四区| 久久精品日韩欧美| 亚洲综合在线中文字幕| 精品极品三级久久久久| 国产日韩成人精品| 尤物在线精品| 国产1卡2卡三卡四卡网站| 欧美中文字幕| а√天堂中文在线资源8| 日韩不卡一二区| 欧美日韩国产不卡在线看| 日本亚洲视频在线| 在线国产三级| 一区免费在线| 国产高清在线观看| 日韩一级二级三级精品视频| 欧美日韩午夜在线| 日韩欧美字幕| 国产欧美日韩视频在线| 国产视频一区二| 欧美日韩国产在线播放| 中文字幕亚洲一区二区av在线| 国产黄色在线播放| 久久中文免费视频| 国产欧美日韩中文字幕| 在线亚洲人成| 精品日韩在线观看| 精品精品久久| 91精品国产自产在线| 日韩精品在线私人| 国产手机精品视频| 国产一级免费在线观看| 91精品免费观看| 欧美日韩国产成人| 亚洲va中文字幕| 精品熟女一区二区三区| 一区二区三区鲁丝不卡| 精品999视频| 日韩视频在线一区| 精品亚洲永久免费| 91精品国产综合久久久久| 日韩一二三四区| 日韩欧美国产一二三区| 久久精品最新免费国产成人| 亚洲一区在线观看视频| 欧美亚洲国产日韩| 亚洲福利在线看| 亚洲国产午夜精品| 天堂在线www天堂中文在线| 国产在线观看色| 中文字幕亚洲第一| 国产日韩亚洲欧美| 国产小视频免费在线观看| 丰满少妇一区二区| 亚洲电影中文字幕在线观看| 欧美激情一区二区三区在线| 国产拍揄自揄精品视频麻豆| 91精品国产综合久久香蕉最新版| 97最新国自产拍视频在线完整在线看| 国产丝袜欧美中文另类| 欧美日韩一二三| 久久精品国产视频| 91久久中文| 欧美婷婷久久| 亚洲三级av| 亚洲欧美久久久| 日韩1区在线| 91精品国产自产在线| 欧美日韩国产一二| 中文字幕欧美亚洲| 国产91久久久久| 激情久久99| 精品久久蜜桃| 国产日韩精品久久久| 午夜国产福利在线观看| 欧美日韩激情一区| 精品国产免费视频| 日本精品在线| 亚洲国产福利视频| 一区二区日韩视频| 交视频在线观看国产| 色综合影院在线| 精品调教chinesegay| 国产在线高清精品| 国产一二三视频| 国产丝袜一区二区| 精品日韩一区二区三区免费视频| 高清一区二区| 久草亚洲一区| 色综合久久88色综合天天免费| 中文在线а√在线8| 在线一区av| 久99久视频| 精品网站999www| 欧美日韩免费高清| 国产一级粉嫩xxxx| 午夜少妇久久久久久久久| 欧美国产亚洲一区| 不卡一二三区| 一区二区日韩av| 欧美在线视频二区| 久久精品国产91精品亚洲| 久久精品夜夜夜夜久久| 精品视频在线视频| 日韩中文字幕第一页| 中文字幕不卡三区| 天天综合色天天| 国产日韩免费| 欧美久久久久久蜜桃| 精品日韩av| 午夜国产在线视频| 一区二区三区免费看视频 | 国产一区日韩| 欧美日韩亚洲不卡| 日韩欧美在线精品| 亚州福利视频| 99久久精品国产成人一区二区| 欧美日韩综合不卡| 免费在线视频一区二区| 国产中文在线观看| 日韩欧美国产综合| 欧美日韩性视频一区二区三区| 国产一区 二区 三区一级| 欧美日韩中文国产| 在线观看区一区二| 91精品久久久久久蜜臀| wwwav在线播放| 91精品在线国产| 亚洲欧美中文字幕| 日韩福利视频导航| 国产在线一在线二| 欧美性极品xxxx做受| 日韩欧美国产成人精品免费| 日韩精品视频在线| 影音先锋一区二区资源站| 一级片免费在线播放| 亚洲乱码中文字幕| 中文字幕2020第一页| 免费高清特黄a大片| 日韩福利视频导航| 一区二区三区中文字幕在线观看| 精品999在线| 欧美日韩性视频| 九九在线精品| 日韩专区视频网站| 亚洲综合在线中文字幕| 国产三级精品网站| 亚洲三级网站| 日本亚洲欧美| 久久精品国产2020观看福利| 日韩精品在线观看视频| 日韩欧美在线字幕| 老司机久久99久久精品播放免费| 精品视频999| 婷婷中文字幕在线观看| 欧美日韩国产综合视频在线观看| 国产成人日日夜夜| 深夜福利亚洲| 日韩国产在线不卡视频| 国产日韩1区| 中文字幕日韩亚洲| 国产一二三视频| 欧美色视频一区二区三区在线观看| 日本а中文在线天堂| 正在播放日韩精品| 亚洲日本欧美日韩高观看| 中文字幕日韩欧美| 亚洲综合三区| 国产视频一区三区| 欧美高清一级片在线| 91久久精品国产| 91精品久久久久久久久| 久久久久久自在自线| 在线日韩中文字幕| 日韩欧美国产成人一区二区| 中文字幕日韩欧美| 欧美日韩精品欧美日韩精品| 亚洲成在线观看| 久久婷婷亚洲| 欧美一级日韩不卡播放免费 | 97caopor国产在线视频| 欧美 日韩 国产 高清| 九九在线精品| 欧美久久久久久蜜桃| 亚洲大胆人体av| 高清1区2区| 色综合婷婷久久| 国产成人日日夜夜| 日韩国产一区三区| 日韩免费视频一区二区| 国产欧美日韩综合| 日韩精品―中文字幕| 午夜国产在线| 中文字幕亚洲高清| 91久久久久久久久| 国产嫩草影院久久久久| 亚洲热线99精品视频| 在线国产三级| 日韩高清在线不卡| 欧美日韩国产免费观看视频| 国产视频三级在线观看播放| 欧美日韩精品综合| 中文字幕 乱码 中文乱码91| 欧美不卡视频一区发布| 一区二区三区在线免费| 日韩在线小视频| 91精品国产91久久久久久三级| 久久福利视频一区二区| 日韩三级免费观看| 欧美中文字幕在线视频| 91精品国产综合久久久久久漫画| 日韩欧美亚洲日产国| 中文字幕在线观看亚洲| 最近高清中文在线字幕在线观看1| 欧美高清一区| 欧美中文字幕第一页| 一区二区不卡视频| 激情五月综合| 黄色精品在线观看| 日本精品二区| 日韩欧美中文在线| 欧美日韩一级黄| 日韩精品视频网| 精品1区2区3区| 日本不卡高清视频一区| 中文字幕欧美日韩在线| 亚洲欧美999| 99精品一级欧美片免费播放| 视频一区三区| 日韩欧美在线不卡| 欧美日韩高清不卡| 在线免费播放av| 91欧美日韩麻豆精品| 日韩久久不卡| 国产欧美一级| 中文字幕日韩国产| 国产香蕉精品视频| 99久久精品国产成人一区二区| 欧美日韩国产观看视频| 精品熟女一区二区三区| 99这里有精品视频| 国产网站av| 欧美日韩国产大片| 日本免费看黄| av免费看在线| 欧美日韩三级视频| 国产免费一级| 国产视频aaa| 91精品国产欧美日韩| 日韩视频精品在线观看| 国产黄在线看| 91九色精品视频| 中文字幕亚洲二区| 亚洲视频在线观看日本a| 视频在线一区二区| 日韩精品手机在线观看| 黄色精品在线观看| 日韩av不卡在线观看| 欧美日韩精品三区| 精品国产免费视频| 91精品国产网站| 国自产拍在线网站网址视频| 中文字幕五月欧美| 91精品国产综合久久香蕉的特点 | 国产性一级片| 在线日韩中文字幕| 亚洲福利精品在线| 国产乱国产乱老熟300| 天堂在线中文| 亚洲免费福利视频| 精品一二三区| 免费在线国产| 国产福利一区在线观看| 欧美高清一级片在线| 日韩欧美国产一二三区| wwwwww在线观看| 久久综合九色欧美综合狠狠| 91精品免费看| 欧美国产一区视频在线观看| 欧美日韩激情一区| 日韩不卡中文字幕| 成人精品国产福利| 日韩精品中文字幕第1页| 国产成人精品免费网站| 国产三级精品在线观看| 国产精久久久久| 欧美久久久精品| 国产视频一二区| 91国内精品在线视频| 精品播放一区二区| 日韩免费视频一区二区视频在线观看| 久久久99精品久久| 一区二区三区精品在线观看| 久久精品国产91精品亚洲| 欧美日韩视频在线| 日本啊v在线| av一区在线观看|