模拟手机界面效果

最近在项目中遇到了一个手机界面的效果,比较简单 主要是模拟手机屏幕内容滚动。但是由于每一屏的内容又是滚动的,所以如何避免滚动条随着屏幕滚动成为必需。
做法是 使用一个假的滚动条在容器滚动的时候遮住真正的滚动条,在滚动结束又使得该假滚动条隐藏,这就造成了滚动条静止的假象。另外自动检测内容数目和更新页数也都是常用的方法,无需多说,直接看效果:
下面是代码:
ContractedBlock.gif ExpandedBlockStart.gif 代码和注释
$(function(){
    
    
var p=1//起始页码
    var curpage=$("#curpage"); //当前页码容器
    var pagelen=$(".phonescr").length;     //获得有多少页内容
    var total=$("#total"); //总页数容器
    var hi=222;     //手机屏幕高度
    var speed=800//滚动时间
    total.html(pagelen); //初始化总页数
    var roller=$("#roller"); //滚动容器
    var rollbar=$("#rollbar"); //假滚动条
    roller.css({"height":hi*pagelen+"px"}); //初始化滚动容器高度
    
    
function countpage(){ //计数器更新当前页数
        curpage.html(p);        
        }
    countpage();  
//初始化页数
    function showscr(){    //切换显示内容    
        $(".phonescr").eq(p-1).show().siblings(".phonescr").hide();
        countpage();
        }
    
function rollscr(){ //滚动显示内容
        rollbar.show(); //显示一下假的滚动条 造成滚动条静止的假象
        roller.stop()
        .animate(
        {
"top" : -(hi*(p-1))+"px"},
        {duration: speed, 
         easing: 
"easeInOutBack",
         complete: 
function(){
             rollbar.hide(); 
//滚动完成后隐藏假滚动条
             countpage(); //再次更新当前页数
             }
         });        
        }    
    
function page( x ){    //控制显示的函数        
        if((x==-1&&p>1)||(x==1&&p<pagelen) ){
            p
+=x;
            
if($.browser.mozilla){ //Firefox 下有问题 不知为何~ 只好屏蔽掉滚动效果
                showscr()
                }
else{
                 rollscr();    
                    }
            }
        }
    $(
"#next").click(function(){page( 1 )  }) //上一页
    $("#prev").click(function(){page( -1 ) }) //下一页
    


转载于:https://www.cnblogs.com/trance/archive/2009/07/23/1529358.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例代码,可以在网页中显示模拟手机界面: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>模拟手机界面</title> <style> body { margin: 0; padding: 0; background-color: #f2f2f2; } .phone { width: 360px; height: 640px; margin: 50px auto; background-color: #fff; box-shadow: 0 0 20px rgba(0, 0, 0, 0.2); border-radius: 20px; overflow: hidden; position: relative; } .phone:before { content: ''; display: block; position: absolute; top: 20px; left: 20px; right: 20px; height: 50px; background-color: #ccc; border-radius: 10px; } .phone:after { content: ''; display: block; position: absolute; top: 90px; left: 20px; right: 20px; height: 500px; background-color: #f2f2f2; border-radius: 10px; } .phone .screen { width: 100%; height: 100%; position: absolute; top: 90px; left: 20px; right: 20px; bottom: 20px; background-color: #fff; overflow: hidden; } .phone .screen iframe { width: 100%; height: 100%; border: none; border-radius: 10px; } </style> </head> <body> <div class="phone"> <div class="screen"> <iframe src="https://www.baidu.com"></iframe> </div> </div> </body> </html> ``` 这个示例代码中,我们使用了 HTML、CSS 和少量 JavaScript,来实现一个模拟手机界面。其中,我们使用了伪元素 `:before` 和 `:after` 来模拟手机的上方和下方的区域,使用了 `border-radius` 属性来使其变得圆角。在中间的区域中,我们使用了一个 `iframe` 元素来嵌入一个网页。你可以根据自己的需要,修改 CSS 样式和嵌入的网页地址来实现自己想要的效果

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值