A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 夏威夷海风 中级黑马   /  2012-7-26 19:52  /  1907 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我用JS做一个产品图片的动画显示,用了一般处理程序

ashx中的内容为
if (action == ""getpagedata")")
            {
                string pagenum = context.Request["pagenum"];//获取前台传过来的参数“pagenum”的值
                int ipagenum = Convert.ToInt32(pagenum);//讲获得的参数转换成int类型的数字
                var adapter = new jsimagesTableAdapter();
                var data = adapter.GetpageData((ipagenum - 1) * 6 + 1, (ipagenum) * 6);
                List<Counment> list = new List<Counment>();
                foreach (var row in data)
                {
                    list.Add(new Counment() { id = row.id, bgpath = row.images });
                }
                JavaScriptSerializer jss = new JavaScriptSerializer();
                context.Response.Write(jss.Serialize(list));
            }
JS文件内容为
var page = 1;
        $(function () {
            $(".clk").click(function (e) {
                page = 1;
                e.preventDefault(); //不要导向连接地址;
                $("#divhidden").css("display", "");
                $.post("jsashx.ashx", { "action": "getpagedata", "pagenum": "1" },
            function (data, status) {
                var conments = $.parseJSON(data);
                $("#divmain").empty();
                for (var i = 0; i < conments.length; i++) {
                    var comment = conments[i];
                    var div = $("<div class='divborder'><img class='nanaA' alt='动画JS图片'  src=downloads/" + comment.bgpath + "/><br/></div>");
                    $("#divmain").append(div);
                    $(".divborder").mouseover(function () {
                        $(this).addClass("divborder1");
                    });
                    $(".divborder").mousemove(function () {
                        $(this).addClass("divborder").siblings().removeClass("divborder1");
                    });
                    $(".nanaA").click(function () {
                        var imgsrc = ($(this).attr("src"));
                        $("#nanaimg").attr("src", imgsrc);
                        alert($("#nanaimg").attr("src"));
                    });
                    $(function () {
                        var x = -260;
                        var y = 20;
                        $("img.nanaA").mouseover(function (e) {
                            this.myTitle = this.title;
                            this.title = "";
                            var imgTitle = this.myTitle ? "<br/>" + this.myTitle : "";
                            var tooltip = "<div id='tooltip'><img class='lass' src='" + this.href + "' alt='产品预览图'/>" + imgTitle + "<\/div>"; //创建 div 元素
                            $("#divmain").append(tooltip); //把它追加到文档中
                            $("#tooltip")
.css({
    "top": (e.pageY + y) + "px",
    "left": (e.pageX + x) + "px"
}).show("fast");   //设置x坐标和y坐标,并且显示
                        }).mouseout(function () {
                            this.title = this.myTitle;
                            $("#tooltip").remove();  //移除
                        }).mousemove(function (e) {
                            $("#tooltip")
.css({
    "top": (e.pageY + y) + "px",
    "left": (e.pageX + x) + "px"
});
                        });
                    })
                }
            });
            });
        });
效果图为下图
图片是从数据库中读取的路径,左边有个向左快进的按钮 右边有个向右快进的按钮 我是在js里设置了一个全部变量 var page = 1;来实现的,但是这样重复的代码就很多了,求更简便的实现方法

未命名.jpg (28.57 KB, 下载次数: 39)

截图

截图

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

1 个回复

倒序浏览
在后台实现:
private void timer1_Tick(object sender, System.EventArgs e)
{
        MovePicBox();
}

/// <summary>
/// 移动PictureBox
/// </summary>
private void MovePicBox()
{
        //改变图片位置
        this.pictureBox.Left += 10;                //右移
        this.pictureBox.Top -= 10;                //上移
                       
        //超过窗体最右端
        if ( this.pictureBox.Left >= this.Width )
        {
                this.pictureBox.Left = 0;
        }
        //超过窗体最上端
        if ( this.pictureBox.Bottom <= 0 )
        {
                this.pictureBox.Top = this.Bottom;
        }
}
在前台实现:
<script>
var timeSet;
var s=10;
var setp=10;
function init(){
        var img1 = document.getElementById("img1");
        var main = document.getElementById("main");
        if(img1.style.pixelLeft <(main.clientWidth-img1.clientWidth-setp)){
                img1.style.pixelLeft =img1.style.pixelLeft+setp;
        }else{
                 clearTimeout(timeSet);
        }
        timeSet = setTimeout("init()",s);
}
window.onload=init;
</script>


评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马