用jquery来实现类似“网易新闻”横向标题滑动的移动端页面

HTML:

<div id="navbar">
                <div id=‘navbar_content‘ style="left:0px;">
                    <div class="channel active">
                        <span>shouye</span>
                    </div>
                    <div class="channel">
                        <span>shouyeshouye</span>
                    </div>
                    <div class="channel">
                        <span>shouyeshouyeshouyeshouyes</span>
                    </div>
                    <div class="channel">
                        <span>shouye</span>
                    </div>
                    <div class="channel">
                        <span>shouye</span>
                    </div>
                    <div class="channel">
                        <span>shouye</span>
                    </div>
                    <div class="channel">
                        <span>shouye</span>
                    </div>
                    <div class="channel">
                        <span>shouye</span>
                    </div>
                    <div class="channel">
                        <span>shouye</span>
                    </div>
                </div>
            </div>
        </div>

CSS:

#navbar{
    background: rgba(247,247,247,0.95);
    overflow: hidden;
    position: relative;
    text-align: center;
    font-size: 1em;
    padding-left: 5px;
    line-height: 28px;
}
#navbar_content{
    font-size: 1em;
    text-align: left;
    white-space: nowrap;
    position: relative;
}
.channel{
    vertical-align: top;
    display: inline-block;
    padding: 0 5px;
    color: rgba(0,0,0,0.6);
    font-weight: normal;
    line-height: 26px;
    border-bottom: 2px solid transparent;
}
.channel.active {
    color: #1c88cd;
    border-color: #1c88cd;
}

JS:

 $(function(){
        console.log($(‘#navbar‘).width())
        var total_width=0;
        var div_arr=$(‘.channel‘);
        for(var i=0,len=div_arr.length;i<len;i++){
            total_width+=div_arr[i].offsetWidth;
        }
        console.log(total_width);

    var x,old_left;
    $(‘#navbar_content‘)
        .live(‘touchstart‘, function(e) {
            console.log(e.originalEvent.pageX)
            x = e.originalEvent.targetTouches[0].pageX // anchor point
            old_left = parseInt(e.currentTarget.style.left);
        })
        .live(‘touchmove‘, function(e) {
            var change = e.originalEvent.targetTouches[0].pageX - x;
            e.currentTarget.style.left = (old_left+change)+"px";
        })
        .live(‘touchend‘, function(e) {
            var left = parseInt(e.currentTarget.style.left);
            var new_left;
            var window_width=document.body.scrollWidth;
            if (left < parseInt("-"+total_width)+$(‘#navbar‘).width()+100) {
                new_left = "-"+(total_width-$(‘#navbar‘).width()+100);
            }else if (left > 0) {
                new_left = ‘0‘
            }
            $(e.currentTarget).animate({left: new_left}, 500);
            e.currentTarget.style.left = new_left;

        });

    });
时间: 2025-01-02 13:50:22

用jquery来实现类似“网易新闻”横向标题滑动的移动端页面的相关文章

可以显示图片的类似网易新闻的头部滚动条(转)

声明:原文来自  http://www.jianshu.com/p/ce4909bc4752 前言, 最近发现一类效果类似网易新闻头部滚动条的效果,不过是可以显示图片(上, 中, 左, 右)和文字, 最近在比较闲的时候顺带把这些效果也一并实现了, 那么这一类的各种效果大致上就实现了Demo地址,供有需要的朋友可以参考 增加效果 图片在左边 图片在右边.gif 图片在上面.gif 只显示图片.gif 原来的效果 --- 只显示文字 oc版滚动示例.gif 关于实现部分, 新增显示的图片的效果, 其

【FastDev4Android框架开发】HorizontalScrollView,Fragment,FragmentStatePagerAdapter打造网易新闻Tab及滑动页面效果(三十六)

转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50145759 本文出自:[江清清的博客] (一).前言: 仿36Kr客户端开发过程中,因为他们网站上面的新闻文章分类比较多,所以我这边还是打算模仿网易新闻APP的主界面新闻标签Tab以及页面滑动效果来进行实现.要实现的顶部的Tab标签的效果有很多方法例如采用开源项目ViewPagerIndicator中的TabPageIndicator就可以实现,不过查看了源码发现

实现网易新闻界面分段滑动展示的设计

工作中经历的两个项目的界面设计都是类似于网易新闻的那种形式,本人也确实认为这种展示在特定情况下是一种非常直观的形式. 例: 所以在这里整体的分析一下实现思路. 首先对这种界面的逻辑进行分析: 1.界面上端有分段点击选择的视图,且可滑动. 2.由于上端的分段选择视图可点击范围较小,而且用户也习惯于用手势来滑动切转界面,所以展示界面是需要滑动的. 3.点击分段选择的Button和手势去滑动切转的界面要对应. 4.第一次切转到的界面需要创建,而之后再滑动到这个界面时,则不需要创建.也就是说:如果上端的

PagerSlidingTabStrip实现网易新闻导航栏效果

PagerSlidingTabStrip实现网易新闻导航栏效果之前在项目当中有一个需求,实现类似网易新闻标题导航的效果,于是在在github搜索下,找了一个开源PagerSlidingTabStrip,研究了这个空间的使用和一些方法,在此与大家分享,希望能够帮到有需要的朋友,好了废话不多讲,直接上代码. package com.example.textpagerslidingtabstrip.activity; import com.example.textpagerslidingtabstri

仿网易新闻广告启动页的实现

由于项目的需要,需要实现类似网易新闻广告启动页类似的效果就自己动手写了一个,主要功能如下: 第一:在启动应用的时候,首先显示第一张图片: 第二:接着淡入第二张图片(采用动画实现): 第三:动画结束之后,可以点击图片,直接进入广告详情页: 第四:若是不点击广告,则三秒后,自动进入首页面: 源代码如下: public class MainActivity extends Activity implements OnClickListener { private ImageView firstImag

RecyclerView---高仿网易新闻客户端

本文将使用RecyclerView,带领大家实现类似网易新闻客户端的Tab界面效果. 先贴上效果图: 关于RecyclerView的基本使用大家可以参考鸿洋的文章:http://blog.csdn.net/lmj623565791/article/details/45059587 好的,下面进入本文主题... 添加依赖包 build.gradle compile 'com.android.support:recyclerview-v7:23.2.1' 实现界面布局 首先,可以看到每一个Tab有一

【黑马Android】(06)使用HttpClient方式请求网络/网易新闻案例

使用HttpClient方式请求网络 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"

iOS界面-仿网易新闻左侧抽屉式交互

1.介绍 用过网易新闻客户端的同学都会发现,网易新闻向左滑动时,左侧的导航栏会跟着拖动出来,新闻内容列表会拉到最右侧.像一个抽屉拉出来一样.很酷.除了网易新闻,现在好多应用都采用了这样的交互. 对手势识别不熟悉的请参考上篇: iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势) 这个交互效果主要用到两个手势,一个是pan拖拽,一个是tap点击.拖拽可以把抽屉拉出来,再推回去.点击可以把抽屉推回去. 效果如下:     那么这个效果如何实现呢? 2.实现思路和步骤 思路:从实现

仿网易新闻导航栏PagerSlidingTabStrip源码分析

转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持!   前言 最近工作比较忙,所以现在才更新博文,对不住大家了~!言归正传,我们来说说这个PagerSlidingTabStrip,它是配合ViewPager使用的导航栏,网易新闻就是用的这个导航,我们仔细观察这个导航栏不仅他是跟着ViewPager滑动而滑动,而且指示器还会随着标题的长度而动态的变化长度. · 下载地址: Github:https://github.com/astuet