js图片向右一张张滚动效果实例代码


Posted in Javascript onNovember 23, 2013

先来张效果图

js图片向右一张张滚动效果实例代码

样式

        #div_left{float:left;width:60px;height:86px;}
        #starScroll{width:843px;height:188px;margin-left:15px;margin-right:15px;padding-top:9px;overflow:hidden;border:1px solid red;float:left;}
        #starScroll #contentScroll{width:500%}
        #starScroll #ScrollOne{float:left;}
        #starScroll #ScrollOne a{float:left;width:204px;height:188px;margin-right:9px;float:left;display:inline;}
        #starScroll #ScrollOne img{width:204px;height:188px;border:0px;}
        #starScroll #ScrollTwo{float:left;}
        #starScroll #ScrollTwo a{float:left;width:204px;height:188px;margin-right:9px;float:left;display:inline;}
        #starScroll #ScrollTwo img{width:204px;height:188px;border:0px;}
        #div_right{float:left;width:60px;height:86px;}
        .arrow{background:url(images/arrow.png) no-repeat;cursor:pointer;height:86px;width:60px;cursor:pointer;display:block;margin-top:50px;}
        .prev{background-position:left top;}
        .prev:hover{background-position:left bottom;}
        .next{background-position:right top;}
        .next:hover{background-position:right bottom;}

html代码

<div>
    <div id="div_left">
        <span id="btn_left" class="arrow prev"></span>
    </div>
    <div id="starScroll">
        <div id="contentScroll">
            <div id="ScrollOne">
                <a href="#" title="1"><img src="images/1.jpg" /></a>
                <a href="#" title="2"><img src="images/2.jpg" /></a>
                <a href="#" title="3"><img src="images/3.jpg" /></a>
                <a href="#" title="4"><img src="images/4.jpg" /></a>
                <a href="#" title="5"><img src="images/5.jpg" /></a>
                <a href="#" title="6"><img src="images/6.jpg" /></a>
                <a href="#" title="7"><img src="images/7.jpg" /></a>
                <a href="#" title="8"><img src="images/8.jpg" /></a>
            </div>
            <div id="ScrollTwo"></div>
        </div>
    </div>
    <div id="div_right">
        <span id="btn_right" class="arrow next"></span>
    </div>
</div>

JS代码

    <script type="text/javascript">
var Scroll=(function(){
    return function(){
        var starScroll = document.getElementById("starScroll"),
            ScrollOne = document.getElementById("ScrollOne"),
            aCollection = ScrollOne.getElementsByTagName("a"),
            aLength = aCollection.length,
            ScrollTwo = document.getElementById("ScrollTwo"),
            btn_left = document.getElementById("btn_left"),
            btn_right = document.getElementById("btn_right");
        var Width = 204,Current = 1,Rate = 7,TimeTimeout=1000,TimeInterval=10,MarginRight=9;
        var SInterval=null,STimeout=null;
        var flag=true;
        function ScrollLeft(){
            var CountWidth = Current*Width+Current*MarginRight,
                SLeftPara=starScroll.scrollLeft;
            if(ScrollTwo.offsetWidth-SLeftPara==0){
                starScroll.scrollLeft=0;
                Current=0;
            }
            if(CountWidth-SLeftPara==0){
                Forward();
            }
            else{
                var v = Math.round((CountWidth-SLeftPara)/Rate);
                v = v<1 ? 1 : v;
                SetScrollLeft(SLeftPara+v);
            }
        }
        function SetScrollLeft(scrollleft){
            starScroll.scrollLeft=scrollleft;
        }
        function Init(){
            flag=false;
            SInterval=setInterval(ScrollLeft,TimeInterval);
        }
        function Forward(){
            clearInterval(SInterval);
            Current++;
            flag=true;
            STimeout = setTimeout(Init,TimeTimeout);
        }
        btn_right.onclick=function(){
            if(flag){
                clearTimeout(STimeout);
                Init();
            }
        }
        function ScrollRight(){
            var CountWidth = Current*Width+Current*MarginRight,
                SLeftPara = starScroll.scrollLeft;
            if(CountWidth-SLeftPara==0){
                Forward();
            }
            else{
                var v = Math.round((CountWidth-SLeftPara)/Rate);
                v = v>-1?-1:v;
                SetScrollLeft(SLeftPara+v);
            }
        }
        btn_left.onclick=function(){
            if(!flag){
                return;
            }
            flag=false;
            clearTimeout(STimeout);
            if(Current==1){
                SetScrollLeft(ScrollTwo.offsetWidth);
                Current=aLength+1;
            }
            Current-=2;
            SInterval = setInterval(ScrollRight,TimeInterval);
        }
        if(aLength>0){
            starScroll.scrollLeft=0;
            ScrollTwo.innerHTML = ScrollOne.innerHTML;
            STimeout = setTimeout(Init,TimeTimeout);
        }
    }
})();
Scroll();
    </script>
Javascript 相关文章推荐
jQuery针对各类元素操作基础教程
Aug 29 Javascript
jquery.ajax之beforeSend方法使用介绍
Dec 08 Javascript
javascript删除元素节点removeChild()用法实例
May 26 Javascript
connection reset by peer问题总结及解决方案
Oct 21 Javascript
AngularJS入门教程之表单校验用法示例
Nov 02 Javascript
vue2.0在table中实现全选和反选的示例代码
Nov 04 Javascript
使用Angular CLI生成路由的方法
Mar 24 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
Jul 11 Javascript
Seajs源码详解分析
Apr 02 Javascript
Vue实现日历小插件
Jun 26 Javascript
小程序中的箭头函数的具体使用
Jun 19 Javascript
JavaScript封装单向链表的示例代码
Sep 17 Javascript
JavaScript实现简单的时钟实例代码
Nov 23 #Javascript
JS控制日期显示的小例子
Nov 23 #Javascript
Jquery 动态循环输出表格具体方法
Nov 23 #Javascript
基于jquery异步传输json数据格式实例代码
Nov 23 #Javascript
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
Nov 23 #Javascript
javascript阻止浏览器后退事件防止误操作清空表单
Nov 22 #Javascript
js获取电脑分辨率的思路及操作
Nov 22 #Javascript
You might like
如何获得PHP相关资料
2006/10/09 PHP
thinkphp3.2点击刷新生成验证码
2016/02/16 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
自己写的Javascript计算时间差函数
2013/10/28 Javascript
jQuery 删除/替换DOM元素的几种方式
2014/05/20 Javascript
JavaScript函数详解
2014/11/17 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
JavaScript兼容性总结之获取非行间样式案例
2016/08/07 Javascript
清除输入框内的空格
2016/12/21 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
AngularJS 控制器 controller的详解
2017/10/17 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
TypeScript高级用法的知识点汇总
2019/12/17 Javascript
微信小程序实现签字功能
2019/12/23 Javascript
vue实现购物车结算功能
2020/06/18 Javascript
Python检测字符串中是否包含某字符集合中的字符
2015/05/21 Python
在Mac OS上搭建Python的开发环境
2015/12/24 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
python将字符串转换成json的方法小结
2019/07/09 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
python英语单词测试小程序代码实例
2019/09/09 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
如何让python的运行速度得到提升
2020/07/08 Python
深入分析python 排序
2020/08/24 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
Canvas系列之滤镜效果
2019/02/12 HTML / CSS
创新社会管理心得体会
2014/09/12 职场文书
表扬信格式模板
2015/05/05 职场文书
Redis高可用集群redis-cluster详解
2022/03/20 Redis