1.

.html:
<div class="test" style="position: relative;">
<ul id="content" style="position: relative;">
<li>test111111111112222</li>
</ul>
</div> .scss:
.test{
overflow: hidden;
width: 200px;
}
ul#content{
list-style-type: none;
font-size: 0px;
white-space: nowrap;
overflow:hidden;
padding:0px;
li{
display: inline-block;
vertical-align: top;
font-size: 13px;
}
} .js:
<script>
$(function() {
var width = window.innerWidth - ;
var content = $('#content').html(); //原内容<li>test111111112222222222</li>
var content_width = $('#content li').width(); //原宽度 $('#content').html(content + content);
var w = $('#content li').length * $('#content li').eq().width(); //w 总长度
$('#content').css('width', w);
var timer;
var el = $('#content')[]; function toRight() {
window.clearInterval(timer);
var timer = window.setInterval(function () {
var offset = el.offsetLeft+; //偏移值 每次相对当前位置偏移10px
if(offset > ){ //第一次进来执行一次,以后为-xx 不再执行
//每次 +10 递增 -160,-150,-140,...,0,10 一旦>0,重置为-165
offset = -el.offsetWidth/;
}
el.style.left = offset+'px';
},)
} function toLeft() {
window.clearInterval(timer);
var timer = window.setInterval(function () {
var offset = el.offsetLeft - ;
if(offset<= -el.offsetWidth/){ // 同理 当向左偏移到一半的时候重置回来
offset = ;
}
el.style.left = offset+'px';
},)
} //如果容器的宽度够显示内容不进行滚动,不够则进行滚动显示
if($('.test').width() > content_width){
$('#content').html(content);
}
else{
toLeft();
}
});
</script>

2.写了后觉得可以优化下

// js部分:
$(function() {
var width = window.innerWidth - ;
var content_width = $('#content li').width();
$('.test').width(width);
if(width < content_width){ //如果内容长度大于显示长度
var timer;
var el = $('#content')[];
var offset = ; //内容的初始位置
var content = $('#content').html();
$('#content').append(content); // 将原内容复制为两条,目的:当向左偏移时,内容前部分消失,在内容的尾部后可以看到内容消失的头部
function toLeft(){
window.clearInterval(timer);
timer = window.setInterval(function () {
offset = el.offsetLeft - ; //每次偏移的量
if(offset < -content_width-){ //如果滚动到底了,重置回来
offset = ;
}
el.style.left = offset+'px'; //执行偏移
},); // 每100毫秒移动一遍
}
toLeft();
console.log(content_width);
}
}); //css:
ul#content{
    list-style-type: none;
    font-size: 0px;
    white-space: nowrap;
    padding:0px;
    li{
        display: inline-block;
        vertical-align: top;
        font-size: 13px;
        padding-left: 20px;
    }
}

js限定内容的溢出滚动(offset,style.left)的更多相关文章

  1. ScrollFix.js:一个 iOS5 溢出滚动的(有限)修复方案

    Update: Unfortunately this does not 100% solve the problem, the script falls down when handling touc ...

  2. js和jquery实现页面滚动监听

    js和jquery实现页面滚动监听 一.总结 一句话总结:onscroll方法和监听页面元素的高度都可以实现滚动监听. 1.onscroll方法实现滚动监听的核心代码是什么? <body ons ...

  3. js函数——倒计时模块+无缝滚动

    倒计时 效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  4. js原生 + jQuery实现页面滚动字幕

    js原生/jQuery实现页面滚动字幕效果 17:45:49 在新闻列表或者文章列表信息等页面中很容易要求实现字幕滚动的效果,以下为简单的实现页面中滚动字幕的效果 1.jQuery实现页面滚动字幕效果 ...

  5. 页面滚动显示或隐藏元素Headroom.js插件帮助你实现滚动效果

    Headroom.js 是什么? Headroom.js 是一个轻量级.高性能的JS小工具(不依赖任何工具库!),它能在页面滚动时做出响应.此页面顶部的导航条就是一个鲜活的案例,当页面向下滚动时,导航 ...

  6. js 鼠标左键拖动滚动

    鼠标左键拖动滚动 原作者: http://blog.csdn.net/lisatisfy/article/details/6606026 本文在源代码的基础上 增加支持水平滚动 的功能 html &l ...

  7. Headroom.js – 快速响应用户的页面滚动操作

    Headroom.js 是一个轻量级,高性能的JS插件(无依赖性!),允许你响应用户的滚动行为.Headroom.js 使您能够在适当的时候把元素融入视图,而其它时候让内容成为焦点.Headroom. ...

  8. js实现车轮的来回滚动

    最近喜欢用js做车轮的来回滚动,简单的js动画分享给大家.有什么建议记得说出来大家一起讨论哦!效果图如下: 源代码: <style> #pic1{ width:20px; height:2 ...

  9. JS基础内容小结(DOM&&BOM)(二)

    元素.childNodes:只读 属性 子节点列表集合 元素.nodeType:只读 属性 当前元素下的节点类型 元素.attributes : 只读 属性 属性列表集合 元素.children: 只 ...

随机推荐

  1. nginx虚拟主机搭建

    nginx [engine x]是 Igor Sysoev 编写的一个 HTTP 和反向代理服务器,另外它也可以 作为邮件代理服务器. 它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括 ...

  2. scrapy--dbmeinv

    第一次将自己的爬虫文件与大家分享.豆瓣美女网页图片爬取.比较简单,但很实用.给大家提供思路为主,增强个人的爬虫能力.希望能帮助到大家!!! 好了,让我们进入正题. 先给大家看下成果!!!激励大家赶快行 ...

  3. php扩展开发-INI配置

    php.ini文件是用来保存各项扩展配置的文件,每个扩展都或多或少需要有一个定制化的配置,ini文件是一个很好的保存配置的方式,我们来看下怎么在自己的扩展里,使用到ini的配置功能 //创建ini的配 ...

  4. 一件安装lnmp

    wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz && tar zxf lnmp1.2-full.tar.gz && ...

  5. Head First Java-图形化界面

    Head First Java是本挺好的书,讲的比较清楚和简单.主要看原则.概念啥的.语法什么的,还是靠谷歌吧:) 这部分的笔记也有很多了,最近会努力更新和搬运.顺便自己也重新读一下. 就酱.想要这本 ...

  6. python-4函数式编程

    1-高阶函数 变量可以指向函数.   def add(x, y, f): 例如f参数为函数 编写高阶函数,就是让函数的参数能够接收别的函数. Python内建了map()和reduce()高阶函数. ...

  7. P3365 改造二叉树

    P3365 改造二叉树 链接 分析: 求出中序遍历后,然后使其变成上升子序列.过程:每个点减去坐标,然后nlogn求出最长不下降子序列,n-ans即答案. 做题时一直认为二叉树就是完全二叉树,然后一直 ...

  8. BZOJ 2907: 拜访神犇

    设最优策略为第一步向左走 那么肯定是走到最左边最优 需要补一些步数 一种是最右边的连着选,多出一倍代价 一种是不连着选,多出两倍代价 #include<cstdio> #include&l ...

  9. android onLayout死循环

    有时候,开发代码的时候,真的是因为你的无知,就导致了程序性能低下. 比如: @Override protected void onLayout(boolean changed, int l, int ...

  10. ACE handle_timeout 事件重入

    当多线程运行反应器事件时, 注意handle_timeout会重入,单独线程不存在下列问题! 1. 一个timer事件 // test_ace_timer.cpp : Defines the entr ...