使用js实现滑动页面效果,很漂亮

使用了一个现成的js

先贴html

  1. <html>
  2. <head>
  3.     <meta http-equiv="content-type" content="text/html; charset=gb2312">
  4.     <title>滑动页面效果示例</title>
  5.     <link rel="stylesheet" href="stylesheets/glider.css" type="text/css" media="screen" charset="utf-8">
  6.     <script src="javascripts/prototype.js" type="text/javascript" charset="utf-8"></script>
  7.     <script src="javascripts/effects.js" type="text/javascript" charset="utf-8"></script>
  8.     <script src="javascripts/glider.js" type="text/javascript" charset="utf-8"></script>
  9. </head>
  10. <body>
  11.     <h1>滑动页面效果示例(Glider.js)</h1>
  12.     <div id="my-glider">
  13.         <div class="controls">
  14.             <a href="#HTML1">HTML 1</a> | 
  15.             <a href="#HTML2">HTML 2</a> |
  16.             <a href="#HTML3">HTML 3</a> |           
  17.         </div>
  18.         
  19.         <div class="scroller">
  20.             <div class="content">
  21.                 <div class="section" id="HTML1">
  22.                     HTML 1
  23.                     <object style="border:0px" type="text/x-scriptlet" data="1.html" width=100height="500px"></object>
  24.                 </div>
  25.                 <div class="section" id="HTML2">
  26.                     HTML 2
  27.                     <object style="border:0px" type="text/x-scriptlet" data="2.html" width=100height="500px"></object>
  28.                 </div>
  29.                 <div class="section" id="HTML3">
  30.                     HTML 3
  31.                     <p>一个youtube篮球视频</p>    
  32.                     <object width="200" height="150">
  33.                     <param name="movie" value="http://www.youtube.com/v/Ef-f7EeDpYI"></param>
  34.                     <param name="wmode" value="transparent"></param>
  35.                     <embed src="http://www.youtube.com/v/Ef-f7EeDpYI" type="application/x-shockwave-flash" wmode="transparent" width="200" height="150"></embed>
  36.                     </object>                   
  37.                 </div>
  38.             </div>
  39.         </div>          
  40.     </div>
  41.     <a href="#" onClick="my_glider.previous();return false;">Previous</a> | <a href="#" onClick="my_glider.next();return false">Next</a>
  42.     <script type="text/javascript" charset="utf-8">
  43.         var my_glider = new Glider('my-glider', {duration:0.5});
  44.     </script>
  45. </body>
  46. </html>


glider.js
  1. /**
  2.  * @author Bruno Bornsztein <bruno@missingmethod.com>
  3.  * @copyright 2007 Curbly LLC
  4.  * @package Glider
  5.  * @license MIT
  6.  * @url http://www.missingmethod.com/projects/glider/
  7.  * @version 0.0.3
  8.  * @dependencies prototype.js 1.5.1+, effects.js
  9.  */
  10. /*  Thanks to Andrew Dupont for refactoring help and code cleanup - http://andrewdupont.net/  */
  11. Glider = Class.create();
  12. Object.extend(Object.extend(Glider.prototype, Abstract.prototype), {
  13.     initialize: function(wrapper, options){
  14.         this.scrolling  = false;
  15.         this.wrapper    = $(wrapper);
  16.         this.scroller   = this.wrapper.down('div.scroller');
  17.         this.sections   = this.wrapper.getElementsBySelector('div.section');
  18.         this.options    = Object.extend({ duration: 1.0, frequency: 3 }, options || {});
  19.         this.sections.each( function(section, index) {
  20.           section._index = index;
  21.         });    
  22.         this.events = {
  23.           click: this.click.bind(this)
  24.         };
  25.         this.addObservers();
  26.             if(this.options.initialSection) this.moveTo(this.options.initialSection, this.scroller, { duration:this.options.duration });  // initialSection should be the id of the section you want to show up on load
  27.             if(this.options.autoGlide) this.start();
  28.       },
  29.     
  30.   addObservers: function() {
  31.     var controls = this.wrapper.getElementsBySelector('div.controls a');
  32.     controls.invoke('observe''click'this.events.click);
  33.   },    
  34.   click: function(event) {
  35.         this.stop();
  36.     var element = Event.findElement(event, 'a');
  37.     if (this.scrolling) this.scrolling.cancel();
  38.     
  39.     this.moveTo(element.href.split("#")[1], this.scroller, { duration:this.options.duration });     
  40.     Event.stop(event);
  41.   },
  42.     moveTo: function(element, container, options){
  43.             this.current = $(element);
  44.             Position.prepare();
  45.         var containerOffset = Position.cumulativeOffset(container),
  46.          elementOffset = Position.cumulativeOffset($(element));
  47.           this.scrolling    = new Effect.SmoothScroll(container, 
  48.                 {duration:options.duration, x:(elementOffset[0]-containerOffset[0]), y:(elementOffset[1]-containerOffset[1])});
  49.           return false;
  50.         },
  51.         
  52.   next: function(){
  53.     if (this.current) {
  54.       var currentIndex = this.current._index;
  55.       var nextIndex = (this.sections.length - 1 == currentIndex) ? 0 : currentIndex + 1;      
  56.     } else var nextIndex = 1;
  57.     this.moveTo(this.sections[nextIndex], this.scroller, { 
  58.       duration: this.options.duration
  59.     });
  60.   },
  61.     
  62.   previous: function(){
  63.     if (this.current) {
  64.       var currentIndex = this.current._index;
  65.       var prevIndex = (currentIndex == 0) ? this.sections.length - 1 : 
  66.        currentIndex - 1;
  67.     } else var prevIndex = this.sections.length - 1;
  68.     
  69.     this.moveTo(this.sections[prevIndex], this.scroller, { 
  70.       duration: this.options.duration
  71.     });
  72.   },
  73.     stop: function()
  74.     {
  75.         clearTimeout(this.timer);
  76.     },
  77.     
  78.     start: function()
  79.     {
  80.         this.periodicallyUpdate();
  81.     },
  82.         
  83.     periodicallyUpdate: function()
  84.     { 
  85.         if (this.timer != null) {
  86.             clearTimeout(this.timer);
  87.             this.next();
  88.         }
  89.         this.timer = setTimeout(this.periodicallyUpdate.bind(this), this.options.frequency*1000);
  90.     }
  91. });
  92. Effect.SmoothScroll = Class.create();
  93. Object.extend(Object.extend(Effect.SmoothScroll.prototype, Effect.Base.prototype), {
  94.   initialize: function(element) {
  95.     this.element = $(element);
  96.     var options = Object.extend({
  97.       x:    0,
  98.       y:    0,
  99.       mode: 'absolute'
  100.     } , arguments[1] || {}  );
  101.     this.start(options);
  102.   },
  103.   setup: function() {
  104.     if (this.options.continuous && !this.element._ext ) {
  105.       this.element.cleanWhitespace();
  106.       this.element._ext=true;
  107.       this.element.appendChild(this.element.firstChild);
  108.     }
  109.    
  110.     this.originalLeft=this.element.scrollLeft;
  111.     this.originalTop=this.element.scrollTop;
  112.    
  113.     if(this.options.mode == 'absolute') {
  114.       this.options.x -= this.originalLeft;
  115.       this.options.y -= this.originalTop;
  116.     } 
  117.   },
  118.   update: function(position) {   
  119.     this.element.scrollLeft = this.options.x * position + this.originalLeft;
  120.     this.element.scrollTop  = this.options.y * position + this.originalTop;
  121.   }
  122. });
还有2个js,内容太多,这里先不贴出来
### 回答1: 好的,我来为你简单介绍一下如何使用 uni-app 创建个人中心页面。 1. 首先,你需要在项目中安装 uni-app 并创建一个新页面,例如命名为 `my-center`。 2. 然后,在 `my-center.vue` 文件中编写 HTML 代码,定义页面的布局和结构。你可以使用 `<template>` 标签中的 HTML 代码来定义页面的布局和元素,例如使用 `<view>` 标签来创建容器,并使用 `<image>` 标签来放置头像、背景图片等。 3. 接下来,在 `<style>` 标签中编写 CSS 代码来设置页面元素的样式。你可以使用 CSS 选择器来设置各个元素的字体、颜色、大小等样式。 4. 最后,在 `<script>` 标签中编写 JavaScript 代码来实现页面的功能逻辑。你可以使用 uni-app 提供的各种 API 来获取用户信息、发起网络请求等。 希望以上内容能帮到你。如果你还有其他问题,欢迎继续提出。 ### 回答2: 当然可以帮您设计一个漂亮的个人中心页面!UniApp是一个跨平台的开发框架,可以同时在多个平台运行,包括iOS、Android、H5和微信小程序等。 首先,我们可以先确定个人中心页面的整体布局和风格。根据您的需求和喜好,可以选择现代简约、时尚炫彩或经典稳重等不同风格。然后,我们会设计一个整体统一的配色方案,包括背景色、字体色、按钮颜色等,以保证页面的整洁和美观。 接着,我们可以按照个人中心页面的功能模块,进行设计和开发。通常个人中心页面会包括用户信息、头像、昵称、个人简介等基本信息展示模块;订单信息、购物车、收藏夹等用户相关功能模块;设置中心、消息中心、帮助中心等设置和提醒模块等。根据您的需求,我们会细致地设计每一个模块的布局和交互效果,以提升用户体验。 在开发过程中,UniApp提供了丰富的组件库和插件市场,可以方便地集成各种功能和效果。我们可以利用这些资源,添加动画效果滑动列表、轮播图等,从而提升页面的交互体验和视觉效果。 最后,在页面开发完成后,我们会进行详细的测试和优化,以保证页面的流畅和稳定。同时,我们也会确保页面的响应式设计,适配不同尺寸和平台的设备。 总结而言,我会根据您的需求,利用UniApp开发一个漂亮的个人中心页面,包括整体布局、配色方案、功能模块设计和交互效果等。期待为您带来完美的用户体验! ### 回答3: 当然可以帮你使用uniapp来编写一个漂亮的个人中心页面。首先,我们可以创建一个uniapp项目,并在首页上添加一个"个人中心"的入口按钮。当用户点击该按钮时,跳转到我个人中心页面。 在个人中心页面,我们可以设置一个顶部导航栏,用来显示用户头像、用户名以及其他信息。这个导航栏可以使用uniapp提供的navbar组件来实现,并可以通过动态绑定用户信息的方式来显示用户头像和用户名。 在页面的主体部分,我们可以放置一些个人信息的模块,比如个人资料、账号安全、我的订单等。这些模块可以通过使用uniapp提供的grid组件来实现,并设计合适的样式和布局,使其看起来更加美观。 此外,我们还可以添加一些功能按钮,比如设置、消息中心等。这些按钮可以使用uniapp提供的button组件来实现,并可以根据需要添加相应的点击事件。当用户点击这些功能按钮时,可以跳转到相应的页面或者进行相应的操作。 最后,为了提高用户体验,我们可以在页面底部放置一个退出登录按钮,使用户可以方便地退出当前账号。 总结起来,通过合理的布局设计、使用uniapp提供的组件和样式特性,我们可以编写一个漂亮的个人中心页面使用户能够方便地管理个人信息和使用相关功能。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值