精华内容
下载资源
问答
  • IE前进后退的实现

    2019-10-04 17:49:31
    在项目是有时会遇到需要模拟IE前进后退的情况,但又不能用Javascript中History.back();...需要重新写前进后退功能,以下就是我为这个写一个例子,如有不正确地方请指教,在这里帖出来只是为了减少大...

    在项目是有时会遇到需要模拟IE前进和后退的情况,但又不能用Javascript中的History.back();来实现,当页面属于表单提交(尤其是动态加载的页面), History.back后退会造成页面过期.如果在IE中隐藏了原来的前进和后退,这是致命的,再怎么也回到不原来的页面.需要重新写前进和后退功能,以下就是我为这个写的一个例子,如有不正确地方请指教,在这里帖出来只是为了减少大家在工作中的时间.^-^

    <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

     

    首先看结构:<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> 
    1.GIF

    首先继承System.Web.UI.Page,在基类中添加几个属性,如下表:

    LinkButton lnkBack

    后退按钮

    LinkButton lnkForward

    前进按钮

    IList<string> HistoryList

    用于保存后退历史页面路径的列表,需用Session保存会话状态

    IList<string> ForwardList

    用于保存前进历史页面路径的列表,需用Session保存会话状态

    bool IsHistory

    用于判断当前请求是否为前进或后退请求.

    string CurrentEventSource

    取得当前请求的事件源控件名称

    void OperateHistoryList()

    处理前进和后退

        当后退时,取出后退列表中最后一次路径,用于跳转,并将当前页路径存入前进列表中

        当前进时,取出前进列表中最后一次路径,用于跳转,并将当前页路径存入后退列表中

     

    具体处理如下图:

    2.GIF

    代码如下
    :

     

    ContractedBlock.gifExpandedBlockStart.gifCode
      1None.gifpublic class HistoryBasePage : System.Web.UI.Page
      2ExpandedBlockStart.gifContractedBlock.gif    dot.gif{
      3InBlock.gif
      4ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
      5InBlock.gif        /// lnkBack 控件。
      6ExpandedSubBlockEnd.gif        /// </summary>

      7InBlock.gif        protected global::System.Web.UI.WebControls.LinkButton lnkBack;
      8InBlock.gif
      9ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
     10InBlock.gif        /// lnkForward 控件。
     11ExpandedSubBlockEnd.gif        /// </summary>

     12InBlock.gif        protected global::System.Web.UI.WebControls.LinkButton lnkForward;
     13InBlock.gif
     14ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
     15InBlock.gif        ///     后退历史路径列表
     16ExpandedSubBlockEnd.gif        /// </summary>

     17InBlock.gif        public IList<string> HistoryList
     18ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
     19InBlock.gif            get
     20ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
     21InBlock.gif                if (Session["HistoryList"== null)
     22InBlock.gif                    return new List<string>();
     23InBlock.gif                return Session["HistoryList"as IList<string>;
     24ExpandedSubBlockEnd.gif            }

     25InBlock.gif            set
     26ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
     27InBlock.gif                Session["HistoryList"= value;
     28ExpandedSubBlockEnd.gif            }

     29ExpandedSubBlockEnd.gif        }

     30InBlock.gif
     31ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
     32InBlock.gif        ///     前进历史路径列表
     33ExpandedSubBlockEnd.gif        /// </summary>

     34InBlock.gif        public IList<string> ForwardList
     35ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
     36InBlock.gif            get
     37ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
     38InBlock.gif                if (Session["ForwardList"== null)
     39InBlock.gif                    return new List<string>();
     40InBlock.gif                return Session["ForwardList"as IList<string>;
     41ExpandedSubBlockEnd.gif            }

     42InBlock.gif            set
     43ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
     44InBlock.gif                Session["ForwardList"= value;
     45ExpandedSubBlockEnd.gif            }

     46ExpandedSubBlockEnd.gif        }

     47InBlock.gif        
     48ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
     49InBlock.gif        ///     判断前一次操作是否是前进或后退
     50ExpandedSubBlockEnd.gif        /// </summary>

     51InBlock.gif        public bool IsHistory
     52ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
     53InBlock.gif            get
     54ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
     55InBlock.gif                if (Session["IsHistory"== null)
     56InBlock.gif                    return false;
     57InBlock.gif                return Convert.ToBoolean(Session["IsHistory"]);
     58ExpandedSubBlockEnd.gif            }

     59InBlock.gif            set
     60ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
     61InBlock.gif                Session["IsHistory"= value;
     62ExpandedSubBlockEnd.gif            }

     63ExpandedSubBlockEnd.gif        }

     64InBlock.gif
     65ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
     66InBlock.gif        ///     取得触发事件的控件
     67ExpandedSubBlockEnd.gif        /// </summary>

     68InBlock.gif        protected string CurrentEventSource
     69ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
     70InBlock.gif            get
     71ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
     72InBlock.gif                string tmp = Request.Form["__EVENTTARGET"];
     73InBlock.gif                if (tmp == null)
     74InBlock.gif                    return "";
     75InBlock.gif                return tmp;
     76ExpandedSubBlockEnd.gif            }

     77ExpandedSubBlockEnd.gif        }

     78InBlock.gif
     79InBlock.gif        protected override void OnInit(EventArgs e)
     80ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
     81InBlock.gif            OperateHistoryList();
     82InBlock.gif            base.OnInit(e);
     83ExpandedSubBlockEnd.gif        }

     84InBlock.gif
     85ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
     86InBlock.gif        ///     处理前进和后退
     87InBlock.gif        ///     当后退时,取出后退列表中最后一次路径,用于跳转,并将当前页路径存入前进列表中
     88InBlock.gif        ///     当前进时,取出前进列表中最后一次路径,用于跳转,并将当前页路径存入后退列表中
     89ExpandedSubBlockEnd.gif        /// </summary>

     90InBlock.gif        private void OperateHistoryList()
     91ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
     92InBlock.gif            string linkUrl = string.Empty;
     93InBlock.gif            IList<string> forwardList = this.ForwardList;
     94InBlock.gif            IList<string> backList = this.HistoryList;
     95InBlock.gif            switch (this.CurrentEventSource.ToLower())
     96ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
     97InBlock.gif                case "lnkback":
     98InBlock.gif                    if (backList.Count > 0)
     99ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
    100InBlock.gif                        linkUrl = backList[backList.Count - 1];
    101InBlock.gif                        forwardList.Add(Request.RawUrl);
    102InBlock.gif                        backList.RemoveAt(backList.Count - 1);
    103InBlock.gif                        this.ForwardList = forwardList;
    104InBlock.gif                        this.IsHistory = true;
    105InBlock.gif                        Page.Response.Redirect(linkUrl);
    106ExpandedSubBlockEnd.gif                    }

    107InBlock.gif                    break;
    108InBlock.gif                case "lnkforward":
    109InBlock.gif                    if (forwardList.Count > 0)
    110ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
    111InBlock.gif                        linkUrl = forwardList[forwardList.Count - 1];
    112InBlock.gif                        backList.Add(Request.RawUrl);
    113InBlock.gif                        forwardList.RemoveAt(forwardList.Count - 1);
    114InBlock.gif                        this.HistoryList = backList;
    115InBlock.gif                        this.IsHistory = true;
    116InBlock.gif                        Page.Response.Redirect(linkUrl);
    117ExpandedSubBlockEnd.gif                    }

    118InBlock.gif                    break;
    119InBlock.gif                default:
    120InBlock.gif                    if (Request.UrlReferrer != null && !this.IsHistory && !Page.IsPostBack)
    121ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
    122InBlock.gif                        backList.Add(Request.UrlReferrer.ToString());
    123InBlock.gif                        this.HistoryList = backList;
    124ExpandedSubBlockEnd.gif                    }

    125InBlock.gif                    if (this.IsHistory)
    126InBlock.gif                        this.IsHistory = false;
    127InBlock.gif                    if (this.HistoryList.Count == 0)
    128InBlock.gif                        this.lnkBack.Enabled = false;
    129InBlock.gif                    if (this.ForwardList.Count == 0)
    130InBlock.gif                        this.lnkForward.Enabled = false;
    131InBlock.gif                    break;
    132ExpandedSubBlockEnd.gif            }

    133ExpandedSubBlockEnd.gif        }

    134InBlock.gif        
    135ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
    136InBlock.gif        ///     后退事件
    137InBlock.gif        /// </summary>
    138InBlock.gif        /// <param name="sender"></param>
    139ExpandedSubBlockEnd.gif        /// <param name="e"></param>

    140InBlock.gif        protected void lnkBack_Click(object sender, EventArgs e)
    141ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
    142ExpandedSubBlockEnd.gif        }

    143InBlock.gif
    144ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
    145InBlock.gif        ///     前进事件
    146InBlock.gif        /// </summary>
    147InBlock.gif        /// <param name="sender"></param>
    148ExpandedSubBlockEnd.gif        /// <param name="e"></param>

    149InBlock.gif        protected void lnkForward_Click(object sender, EventArgs e)
    150ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
    151ExpandedSubBlockEnd.gif        }

    152InBlock.gif
    153InBlock.gif
    154ExpandedBlockEnd.gif    }

    源程序下载: HistoryTest

    转载于:https://www.cnblogs.com/eric-huang/archive/2008/04/02/1134121.html

    展开全文
  • 提到浏览器的前进后退功能,大家都很熟悉。假如当你依次访问完一串页面a-b-c之后,点击浏览器的后退按钮,就可以查看之前浏览的页面b和a,当你后退到a,点击前进...关于“栈”,我有一个非常贴切的例子就是一摞叠...

    在这里插入图片描述
    提到浏览器的前进、后退功能,大家都很熟悉。假如当你依次访问完一串页面a-b-c之后,点击浏览器的后退按钮,就可以查看之前浏览的页面b和a,当你后退到a,点击前进按钮,就可以重新看到页面b和c。但是,如果你后退到b后,点击了新的页面d,那就无法再通过前进、后退功能查看页面c了。
    那么如何实现这个功能?这就要说道我们今天要学习的“栈”。

    一.如何理解栈

    关于“栈”,我有一个非常贴切的例子,就是一摞叠在一起的盘子。我们平时放盘子的时候,都是从下往上一个一个放;取得时候,我们也是从上往下一个一个依次取,不能从中间取。后进者先出,先进者后出,这就是典型的“栈”结构.

    在这里插入图片描述

    二.如何实现一个“栈”

    从刚才栈的定义里,我们可以看出,栈主要包括两个操作,入栈和出栈,也就是说在栈顶插入一个数据和从栈顶删除一个数据。理解了栈的定义之后,我们来看一看如何用代码实现一个栈。
    实际上,栈既可以用数组来实现,也可以用链表来实现。用数组实现的栈,我们叫顺序栈,用链表实现的栈,我们叫链式栈

    下面我们使用数组来实现顺序栈。(java实现)

    package com.milogenius.collection;
    
    /**
     * @program: Milogenius
     * @description:
     * @author: Milogenius
     * @create: 2019-01-14 17:35
     * @description:
     **/
    public class ArrayStack {
        private String[] items; //数组
        private int count;  //栈中元素的数量
        private int n; //栈的大小
    
        //初始化数组,申请一个大小为n的数组空间
        public ArrayStack(int n){
            this.items = new String[n];
            this.n = n;
            this.count = 0;
        }
    
        //入栈操作
        public boolean push(String item){
            //数组空间不够了,直接返回false,入栈失败
            if (count == n) {
                return false;
            }
            //将item放到下标为count的位置,并且count+1
            items[count] = item;
            ++count;
            return true;
        }
    
        //出栈操作
        public String pop(){
            //栈为空,则直接返回null
            if (count == 0) {
                return null;
            }
            //返回下标为count-1的数组元素,并且栈中的元素个数count -1
            String tmp = items[count - 1];
            --count;
            return tmp;
        }
    }
    
    

    了解了定义和基本操作,那它的操作的时间,空间复杂度是多少呢?
    不管是顺序栈和链式栈,我们存储数据只需要一个大小为n的数组就够了。在入栈和出栈的过程中,只需要一两个临时变量存储空间,所以空间复杂度是O(1)。

    注意,这里存储数据的数组大小为n,并不是说空间复杂度就是O(n)。因为,这n个空间是必须的,无法省掉。所以我们说空间复杂度时,是指除了原本的存储空间之外,算法运行还需要额外的存储空间。对于时间复杂度,因为入栈、出栈涉及栈顶个别数据的操作,所以时间复杂度都是O(1)。

    三.支持动态扩容的顺序栈

    刚才哪个是基于数组实现的栈,是一个固定大小的栈。也就是说,在初始化栈时需要制定栈的大小。当栈满了之后,就无法再往栈里存储数据了。尽管链式栈的大小不受限,但要存储next指针,内存消耗相对较多,那我们如何基于数组实现一个可以支持动态扩容的栈?

    在前面的数组课程,当数组空间不够时,我们就重新申请一块更大的内存,将原来数组中的数据统统拷贝过来。这样就实现一个支持动态扩容的数组。

    因此,如果要实现一个支持动态扩容的栈,我们只需要底层依赖一个支持动态扩容的数组就可以了,当栈满了之后,我们就申请一个更大的数组,将原来的数据搬移到新数组中。我们可以根据下面的图理解。
    在这里插入图片描述
    对于出栈操作来说,我们不会涉及内存的重新申请和数据搬移,所以出栈的时间复杂度为O(1)。但是,对于入栈来说,情况就不一样了。当栈中还有空闲空间时,入栈操作的时间复杂度为O(1)。但当空间不够时,就需要重新申请内存和数据搬移,所以时间复杂度就变为O(n)。

    四.栈在函数调用中的应用

    基于前面的理论知识,我们来看看具体应用,其中,比较经典的一个场景就是函数调用栈.
    我们知道,操作系统给每个线程分配一块独立的内存空间,这件内存被组织为”栈”这种结构,用来存储函数调用时的临时变量。每进入一个函数,就会将临时变量做为一个栈帧入栈,当被函数调用执行完成后,将这个函数对应的栈帧出栈。

    	int main(){
        int a = 1;
        int ret = 0 ;
        int res = 0;
        ret = add(3,5);
        res = a + ret;
        printf("%d", res);
        return 0;
    }
    
    private int add(int x, int y) {
        int sum = 0;
        sum  = x + y;
        return sum;
    }
    
    

    从代码中可以看出,main()函数调用了add()函数,获取计算结果,并且与临时变量a相加,最后打印res的值。具体函数调用栈情况,看下图:
    在这里插入图片描述

    五.栈在表达式求值中的应用

    我们再来看栈的另一个应用场景,编译器如何利用栈来实现表达式求值。

    为了方便解释,我将算数表达式简化为只包含加减乘除运算。比如:34+13*9+44-12/3。对于这个四则运算,我们人脑可以很快求解出答案,但是对于计算机,理解这个表达式确实很难。

    实际上,编译器就是通过两个栈来实现的,其中一个保存操作数的栈,另一个是保存运算符的栈。我们从左到右遍历表达式,当遇到数字,我们就直接压入操作数栈;当遇到运算符,就与运算符栈的栈顶元素进行比较。

    如果比运算符栈顶元素的优先级高,就将当前运算符压入栈;如果比运算符栈栈顶元素优先级低或者相同,从运算符栈中取栈顶运算符,从操作栈的栈顶取2个操作数,然后进行计算,再把计算完的结果压入操作数栈,继续比较。

    下面我将3+5*8-6这个表达式画出一张图,来理解下计算过程。
    在这里插入图片描述

    解答开篇

    现在我们来看看开篇问题,考虑一下如何利用栈来实现浏览器的前进、后退功能?
    我们使用两个栈,X和Y,我们把首次浏览的页面依次压入栈x,当点击后退时,在依次从X中出栈,并将出栈的数据依次放入栈Y。当我们点击前进按钮时,我们依次从栈Y中取出数据,放入栈X中。
    比如我们按顺序a , b ,c 三个页面,我们就依次把a b c 压入栈,这个时候,栈的数据如下图

    图

    当我们通过浏览器的后退按钮,从页面c后退到页面a之后,我们就依次把c和b 从栈X种弹出,并且依次放入栈y。这个时候,两个栈的数据就是这个样子:

    在这里插入图片描述

    这个时候你又想看页面b,于是点击前进按钮回到b页面,我们就把b从栈Y中出栈,放入栈X中,此事两个栈的数据如下图

    在这里插入图片描述

    这个时候,你通过页面b又跳转到新的页面b,页面c就无法再通过前进,后退按钮重复查看了,所以清空栈Y,此时两个栈的数据这个样子:
    在这里插入图片描述

    内容小结:

    栈时一种操作受限的数据结构,只支持入栈和出栈操作,后进先出是最大的特点。栈既可以通过数组实现,也可以通过链表实现。不管基于数组还是链表,入栈、出栈的时间复杂度都是O(1).

    展开全文
  • 最近在做单页面web应用,网站比较小,所以没有别框架,用jquery+ajax,但是浏览器前进后退有问题,于是百度一下可以使用pjax进行前进后退。 然后做了个例子,确实可以了,但是紧接着问题来了,如果进行局部...
    最近在做单页面的web应用,网站比较小,所以没有别的框架,用的jquery+ajax,但是浏览器前进后退有问题,于是百度一下可以使用pjax进行前进后退。
    然后做了个例子,确实可以了,但是紧接着问题来了,如果进行局部渲染之后直接按f5,则页面只剩下了局部刷新的页面,其他页面元素都没有了,
    网上也看了好些人说这个问题,也有人回答了问题,但是答案都是要不说的根本就不是这个问题,要不就是根本看不懂,哪位大神能帮忙指点一下,f5的问题怎么解决。
    展开全文
  • Unity EZGUI:过渡前进后退

    千次阅读 2013-05-20 10:39:36
    unity3d教程: Unity EZGUI:过渡前进后退 之前使用EZGUI真很偷懒,都不弄懂Panel Transition里Forward与Back真正差异,今天终于下定决心搞定它。 说穿了就是Panel里index “向上增加” 或 “向...

    unity3d教程: Unity EZGUI:过渡前进与后退

    之前使用EZGUI真的很偷懒,都不弄懂Panel Transition里Forward与Back的真正差异,今天终于下定决心搞定它。


    说穿了就是Panel里index的 “向上增加” 或 “向下递减” 而已。

    来看个例子,假设有三个Panel分别是Menu与Options,其中各自index为0与1。当使用UIPanelManager呼叫Bring函数切换Panel时,相对应的Forward与Back呼叫如下:

    Menu (index:0) -> Options (index:1),对应于 Menu (呼叫Dismiss Forward)  -> Options (呼叫BringInFoward),反之

    Options (index:1) -> Menu (index:0),对应于Options (呼叫DismissBack) ->  Menu (呼叫BringInBack)

     总结:

    index由小变大就是呼叫Forward的Transition,相反的由大变小就呼叫Back的Transition。还有特别注意这东西与UIPanelManager是不是线性的向前或向後BringIn无关,只跟你“目前所在的Panel的index,与接下来要切换的那个Panel的index号码大小有关”。Unity3D教程手册

    当然也许你会发现UIPanel这个Class本身也有两个funciton BringIn()与Dismiss(),这部分在EZGUI文件上就写得很清楚了,它们分别呼叫的是:BringInForwad与DismissForward。
    展开全文
  • 这篇是针对我以前所写一个例子进行了对history修改,修改以后可以针对URL带参数链接进行访问具体某一页,比如...当然最基本就是增加了浏览器的前进后退功能啦,下面介...
  • 业务需求: 切换tab页标签的时候(路由前进的时候),缓存当前组件数据,关闭tab页标签的时候清除组件缓存。 实现: 1、先在store的state里面设置一个要缓存数组 2、在进到子页面的时候,更新store的数组,把将要...
  • 本程序特点就是使用了文件存储作为全局变量,使用WASD控制小车的前进后退,没有使用cocos引擎,而是使用CImage和CFile经典例子,本人蒟蒻一枚,望大神不喜勿喷。
  • 相机也可以成为观察者,最简单的例子就是魂斗罗。 魂斗罗 魂斗罗 玩家操作角色前进后退,跳跃等,显示的世界(就是后面的背景)会不停变化。其实就是相机的观察点(视角)的改变引起的。 也许游戏...
  • 相机也可以成为观察者,最简单的例子就是魂斗罗。 图片分享: 玩家操作角色前进后退,跳跃等,显示的世界(就是后面的背景)会不停变化。其实就是相机的观察点(视角)的改变引起的。 也许游戏的...
  • Android-用WebView开发简单...例子中主要用到了 WebView 以下方法: void loadUrl(String url) 加载指定 url 对应网页 void goBack() 后退 void goForward() 前进 boolean canGoBack() 根据历史记录判断...
  • Android-用WebView开发简单浏览器Android 提供了 WebView 组件,WebView 本身就是一个浏览器实现。例子中主要用到了 WebView 以下方法: void loadUrl(String url) 加载指定 url 对应网页 void goBack() 后退 ...
  • 我这两天有时候会想做一个向导对话框(就是那种上一步、下一步可以前进后退的玩意)。琢磨了一下,如果用Core Animation做出动画效果,那可就更好玩了。基本上,这个例子做不了任何事。就是给你看看,一个窗口,里面...
  • 一、本文就是个实例展示 三点: 我就TM想找个例子,知道如何个使用,使用语法什么滚粗跟搜索引擎搞基自己备忘 ...精力总是有限,昨天一冲动,在上海浦东外环...二、ajax载入与浏览器历史的前进后退 众所
  • 流的操作的特性就是数据传输(一直前进,而不能往后退),在数据传输速度和处理的速度存在不平衡的,这种不平衡使得数据传输过程中进行缓存处理而释放数据处理器的资源是一种提高程序效率的机制。举个特别简单的例子...
  • 一、本文就是个实例展示 三点: ...二、ajax载入与浏览器历史的前进后退 众所周知,Ajax可以实现页面无刷新操作——优点;但是,也会造成另外问题,无法前进后退!曾几何时,Gmail似乎借助ifra
  • 有时需要在检索出来行中前进后退一行或多行,这就是游标用处所在。 下面使用一个例子来说明游标使用: create procedure processorders() begin declare done boolean default 0; declare o int; ...
  • 在写移动端时,因为需要给页面做转场动画,便有了这次研究其中最主要时以下两个问题:浏览器导航栏切换IOS 上滑动切换时,会有两次... 浏览器导航栏切换通过记录 历史记录 来比较判断前进还是后退如下例子A...
  • 2021-01-04 16:38:25
    支持动态扩容顺序栈栈在函数调用中应用栈在表达式求职中应用栈在括号匹配中应用如何实现浏览器的前进后退功能? 栈 “栈”例子:栈可以看作就是一摞叠在一起盘子。都是从下往上一个一个放,取时候也...
  • 在写移动端时,因为需要给...通过记录 历史记录 来比较判断前进还是后退 如下例子 A页面 -> B页面 -> C页面 假如我从 A页面到 B页面 再到C页面,历史记录就会产生3条 我们用一个数组表示: [‘/a’, ‘/b’, ‘/c’]
  • 一、本文就是个实例展示 三点: 我就TM想找个例子,知道如何个使用,使用语法什么滚粗跟搜索引擎搞基自己备忘 ...精力总是有限,昨天一冲动,在上海浦东外环之外...二、ajax载入与浏览器历史的前进后退
  • SilverLight内置缓存功能 倒退缓冲(BackEase):让动画在继续之前往后退一点。...弹跳缓冲(BounceEase):在我们前面的例子中,生成的就是个弹跳反冲。圆缓冲(CircleEase):基于三角函数(圆函数)来加

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

后退就是前进的例子