zoukankan      html  css  js  c++  java
  • jQuery在asp.net中实现图片自动滚动

      时间真快,不知不觉12月已经过了一半了,新的一年即将到来。有段时间没写东西了,技术这东东天天都在更新,天天都是一个新面孔,如果不坚持学习肯定就会落在队尾。要想跟上队伍,需要每天都要学习,但是学习的只是真是太多了,真叫人眼花缭乱,所以要给自己制定目标,强攻一个放心,要加入到专家领域。

      在工作不忙的空闲时间,自己学习了jQuery在asp.net中的使用。看似简单,但在真正运用中却遇到不少麻烦,需要过硬的基础知识,同时还需要借助网络上的高手。各种各样的插件也出来了,足以满足目前的应用,不但可以节省大量的时间,还简单易用省去好多麻烦。

      经常看到好多公司主页上的产品会自动滚动,实现产品展示的效果。便想自己试试实现这样的效果,并且图片是动态从数据库中获取,自动水平从左到右或从右到左滚动,下面就是实现的部分代码:

      ImageScroll.aspx页面:

    代码
    1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ImageScroll.aspx.cs" Inherits="ImageScroll" %>
    2
    3  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    4
    5  <html xmlns="http://www.w3.org/1999/xhtml">
    6  <head runat="server">
    7 <title></title>
    8 <script type="text/javascript" src="jquery/jquery-1.4.js"></script>
    9 <script type="text/javascript" src="js/imageScroller.js"></script>
    10 <style type="text/css">
    11 #viewer {height:100px; 300px; clear:both; overflow:hidden; border:3px solid #e5e5e5;}
    12 #viewerFrame {505px; clear:both; padding:0;}
    13 #viewer img {90px; height:90px; margin:5px; display:inline; border:0;}
    14 #viewer a {display:block; float:left; 100px; height:100px;}
    15 </style>
    16  </head>
    17 <script type="text/javascript">
    18 $(function() {
    19 $("#viewer").imageScroller({
    20 next: "right",//向右
    21 prev: "left",//向左
    22 frame: "viewerFrame",//父容器
    23 100, //宽度
    24 child: "a", //图片容器
    25 auto: true
    26 });
    27 });
    28 </script>
    29 <body>
    30 <form id="form1" runat="server">
    31 <div id="viewer">
    32 <div id="viewerFrame">
    33 <asp:Repeater ID="Repeater1" runat="server">
    34 <ItemTemplate>
    35 <a href=""><img alt="" src='<%# Eval("p_url") %>' /></a>
    36 </ItemTemplate>
    37 </asp:Repeater>
    38 </div>
    39 </div>
    40 <span id="right">next</span><br/><span id="left">prev</span>
    41 </form>
    42 </body>
    43 </html>
    44

      ImageScroll.aspx.cs页面

    代码
    1 using System;
    2 using System.Collections.Generic;
    3 using System.Linq;
    4 using System.Web;
    5 using System.Web.UI;
    6 using System.Web.UI.WebControls;
    7 using System.Data;
    8
    9 public partial class ImageScroll : System.Web.UI.Page
    10 {
    11 protected void Page_Load(object sender, EventArgs e)
    12 {
    13 bingImage();
    14 }
    15
    16 public void bingImage()
    17 {
    18 string strSql = "select p_url from product";
    19 DataSet ds = AccessDB.Dataset(strSql);
    20 Repeater1.DataSource = ds;
    21 Repeater1.DataBind();
    22 }
    23 }

      imageScroller.js文件

    代码
    1 jQuery.fn.imageScroller = function(params){
    2 var p = params || {
    3 next:"buttonNext",
    4 prev:"buttonPrev",
    5 frame:"viewerFrame",
    6 100,
    7 child:"a",
    8 auto:true
    9 };
    10 var _btnNext = $("#"+ p.next);
    11 var _btnPrev = $("#"+ p.prev);
    12 var _imgFrame = $("#"+ p.frame);
    13 var _width = p.width;
    14 var _child = p.child;
    15 var _auto = p.auto;
    16 var _itv;
    17
    18 var turnLeft = function(){
    19 _btnPrev.unbind("click",turnLeft);
    20 if(_auto) autoStop();
    21 _imgFrame.animate( {marginLeft:-_width}, 'fast', '', function(){
    22 _imgFrame.find(_child+":first").appendTo( _imgFrame );
    23 _imgFrame.css("marginLeft",0);
    24 _btnPrev.bind("click",turnLeft);
    25 if(_auto) autoPlay();
    26 });
    27 };
    28
    29 var turnRight = function(){
    30 _btnNext.unbind("click",turnRight);
    31 if(_auto) autoStop();
    32 _imgFrame.find(_child+":last").clone().show().prependTo( _imgFrame );
    33 _imgFrame.css("marginLeft",-_width);
    34 _imgFrame.animate( {marginLeft:0}, 'fast' ,'', function(){
    35 _imgFrame.find(_child+":last").remove();
    36 _btnNext.bind("click",turnRight);
    37 if(_auto) autoPlay();
    38 });
    39 };
    40
    41 _btnNext.css("cursor","hand").click( turnRight );
    42 _btnPrev.css("cursor","hand").click( turnLeft );
    43
    44 var autoPlay = function(){
    45 _itv = window.setInterval(turnLeft, 3000);
    46 };
    47 var autoStop = function(){
    48 window.clearInterval(_itv);
    49 };
    50 if(_auto) autoPlay();
    51 };
    52

      效果图:

    AccessDB是操作access数据库的类。

    以上就可以简单的实现动态从数据库中获得图片实现水平滚动效果。如果大家还有其它简洁方便的办法,欢迎交流、学习。

    作者:zeke     
              出处:http://zhf.cnblogs.com/
              本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 

  • 相关阅读:
    (转)如何在一台电脑上开启多个tomcat 和配置让系统识别哪个具体的tomcat
    Moccakids-Tangram Puzzle 限免啦!
    iOS:OC Lib:MagicalRecord
    iOS Vuforia:TextReco 增加自己的单词库
    iOS:Tools:快速注释Doxygen
    聊聊分布式事务,再说说解决方案
    .NET Core 事件总线,分布式事务解决方案:CAP
    Glob 模式
    基于 Kong 和 Kubernetes 的 WebApi 多版本解决方案
    ASP.NET Core 身份验证(一)
  • 原文地址:https://www.cnblogs.com/ZHF/p/1907265.html
Copyright © 2011-2022 走看看