精华内容
下载资源
问答
  • 方案一:javascript方案:(此方案若用在服务端控件上不能实现跳转,因为服务端控件在跳转前会回发一次,就改变了document.referrer的值) 在图片按钮上加上一个js方法GoPre() ... window.location.href = ...

    方案一:javascript方案:(此方案若用在服务端控件上不能实现跳转,因为服务端控件在跳转前会回发一次,就改变了document.referrer的值)

    <img  ID="imgCancel"  alt="" src="images/login_07.gif" οnclick="GoPre()" />


    在图片按钮上加上一个js方法GoPre()

    js代码:

    <script type="text/javascript">
            function GoPre() {
                window.location.href = document.referrer; //使用document.referrer
            }

    </script>


    方案二:asp.net后台处理方案:(我这里使用imageButton控件)

    <asp:ImageButton ID="imgBtnCancel" runat="server" ImageUrl="images/login_07.gif" OnClick="imgBtnCancel_Click"/>

    步骤一:在 Page_Load方法中获取Request.UrlReferrer,并保存在viewState里面
                     if (Request.UrlReferrer != null)
                    {
                        ViewState["urlPre"] = Request.UrlReferrer;
                    }

    步骤二:设置按钮的点击事件OnClick

    protected void imgBtnCancel_Click(object sender, ImageClickEventArgs e)
            {
                Response.Redirect(ViewState["urlPre"].ToString());
            }


    小结:以上两种都可实现跳转回前一页的功能,为了减轻服务端压力,一般优先使用客户端跳转,即js解决方案。

    展开全文
  • 女程序员的时间都去哪里了?“时间都去哪里了”这是春晚之后越来越多成年人的感叹。身处变化万千的互联网行业,潘敏和于立娟,同为公司里的少数派----女程序员的代表,对时间带给她们的改变,有着更深刻的理解。  ...
  • 聊聊页面中的锚点效果和回到顶部

    万次阅读 多人点赞 2020-12-28 11:20:27
    页面中的锚点各位想必都“了如指掌”,其基于a链接“同页面跳转”和“id属性标签的历史问题”。 ...还可以和url相关联。 直接用id访问是旧版本js遗留下来的特性,浏览器会建立window实例的id同名属性,这是...这里&l

    页面中的锚点各位想必都“了如指掌”,其基于a链接“同页面跳转”和“id属性标签的历史问题”。

    可能有人不知道的是:HTML中的“id”非常神奇:id属性的元素不仅可以在js中直接使用,而不必先获取;还可以和url相关联。
    直接用id访问是旧版本js遗留下来的特性,浏览器会建立window实例的id同名属性,这是为了兼容旧的网页。但不要依赖这个特性,在含有特殊字符或者和window实例的其他属性有冲突时可能失效。

    我们都知道,锚点应该这样用:

    <a href="这里写#号+id名">去这里</a>
    
    <div id="上面a中引用的id名">我是目的地</div>
    

    如此便可。

    但是这里面有两个小问题:

    1. 使用锚点后url中也会带有href中的字符串(#号+id名)
    2. 因为是类似跳转方式,所以过程非常生硬

    比如有的网页中有这样的效果:点击侧边栏或顶部某一个div后整个页面滑动到相应的位置,就像这样——
    js点击滚动对应区域

    以前来说用锚点肯定是不现实的,所以我们需要找到一个适合的API。

    按照需求,即点击某个div后对应部分的顶部要“刚好”到窗口可视区的顶部!这里面我们要考虑的一定是“如何算div的顶部在窗口可视区顶部”。
    js提供了一个有趣的API可以完成我们的需求 —— getBoundingClient() ,它相当于是封装了client API并把它应用在普通元素上,通过它我们能得到此元素距离可视区顶部、左边的距离,比如:
    getBoundingClient-API

    并且根据上一篇文章(点击阅读文章)中所提,document下的scrollTop API可为我们提供文档流(页面整体区域)向上滚动了多少距离。

    笔者在这里再次提醒各位要区分js中inner系、page系、client系、offset系、outer系、screen系…事件,他们的含义各不相同。比如常说的offsetTop/Left,是距离上一级父元素的上/左边距,通常用 if(dom.parentElement) 做累加求的是“距离文档流顶部的距离”,就不适用于此处。

    将二者结合起来使用,就可以达到:若想要展示的区域在下方,就让文档流不断向上滚动,直到此区域滑动到可视区顶端;反之若想要展示的区域已经滑过,就让文档流不断向下滚动。

    /**
    	leftBtn:侧边栏中所有负责页面滚动的div,都有一个class属性为left-btn
    	i:left-btn所属div的下标(第几个)
    	.mao1/2/3:页面中负责“滑到顶部”的div,一般是某一个区域的小标题
    */
    let leftBtn=document.querySelectorAll(".left-btn")
    
    function gotoTop(i,top){
    	var timer=null;
    	leftBtn[i].onclick=function(){
    		let scrollTop=document.body.scrollTop ||document.documentElement.scrollTop || window.pageYOffset
    		// 若目标位置在当前位置上方
    		if(scrollTop>top){
    			clearInterval(timer)
    			timer=null;
    			timer=setInterval(function(){
    				scrollTop=scrollTop-90<top?top:scrollTop-90;
    				document.body.scrollTop=document.documentElement.scrollTop=window.pageYOffset=scrollTop
    				if(scrollTop<=top){
    					clearInterval(timer);
    					timer=null;
    				}
    			},50)
    			// 目标位置在当前位置下方
    		}else if(scrollTop<top){
    			clearInterval(timer)
    			timer=null;
    			timer=setInterval(function(){
    				scrollTop=scrollTop+90>top?top:scrollTop+90;
    				document.body.scrollTop=document.documentElement.scrollTop=window.pageYOffset=scrollTop
    				if(scrollTop>=top){
    					clearInterval(timer);
    					timer=null;
    				}
    			},50)
    		}
    	}
    }
    

    使用如:

    let one_top=document.querySelector(".mao1").getBoundingClientRect().top
    let two_top=document.querySelector(".mao2").getBoundingClientRect().top
    let thr_top=document.querySelector(".mao3").getBoundingClientRect().top
    gotoTop(0,one_top);
    gotoTop(1,two_top);
    gotoTop(2,thr_top);
    

    这样就能达到上面展示的效果了。

    这里面需要注意的是:setInterval() 定时器的清除!
    如果上方代码去掉第14、15、26、27行,则页面滚动行为会发生错误。看上去似乎是clearInterval失效了!其实这个问题本身是由于js定时器特性产生的。clearInterval是根据定时器本身的标识来进行清除的,如果在期间生成了新的interval,并覆盖timer标识对象,旧有的timer定时器对象并不会被停止和清除,而且标识也会丢失导致再也无法被清除,所以写定时器时一定要注意。建议在调用某个定时器任务的函数的时候,一定一开始就把之前的定时器先清除!

    这个问题到这里似乎很好的解决了。但是上面代码毕竟还是太长了,而且里面要进行严格的判断以决定开始和结束(定时器的增加和删除),似乎稍有不妥。

    不过别急,js更新了另一个神器 —— scrollIntoView() ,原先这个API的作用就是让指定的div的顶部跳到窗口可视区顶部(从效果上看类似锚点),但是更新后增加了配置参数:

    dom.scrollIntoView({
    	behavior:"smooth"   // !
    })
    

    这个参数的作用就是“平滑滚动”!不过由于新所以兼容性目前还不算很好,但是也无妨,毕竟它原本的作用还在,可以把新特性当做“只对少数用户更新的体验”。


    说完了锚点效果,来说说页面中普遍存在的“回到顶部”。

    同样的,之前笔者做社团官网的时候就采用了控制scrollTop不断--的方法。现在看来太麻烦了,用上面提到的 scrollIntoView() API就可完成:
    目前大部分官网/网站都采用了在页面顶部(左上角)放一张logo的形式。针对使用这种形式的网站,若是logo所在div不是采用 position:fixed; 的方式固定在顶部的话,我们可以将img外面包裹一层a标签,然后就可以在“回到顶部”按钮的事件中这么写:

    document.links[0].scrollIntoView({
    	behavior:"smooth"
    })
    //或者 直接定位图片
    document.images[0].scrollIntoView({behavior:"smooth"})
    

    scrollIntoView

    这里还要提到js中后来新加入的两个原生API:scrollTo(滚动到哪里) 和 scrollBy(滚动多少距离)。这里为啥提到这俩?因为scrillTo这个API可以在ie上使用!它被支持在window上,比如:回到顶部window.scrollTo(0,0);
    但这里也只是提一句让各位有个印象,非要用在本文所提场景下则大可不必。


    说到这,前几天惊奇的发现CSS中多了一个控制页面滚动的属性!(去年年底开始支持的)原生平滑滚动定位 —— scroll-behavior ,它有两个值:

    1. auto:初始值。啥也没有。
    2. smooth:作用在滚动容器元素上,可以让容器内的滚动变得平滑。

    比如在笔者文章中多次出现的tab框切换,如果你只设置了父容器的 overflow:hidden; 而子元素采用了相对父元素定位的方式展示(display、opacity、visibility都不行,因为他们本质上都不是通过位置移动展示元素的),那么就可以在父容器上加上一行:scroll-behavior: smooth;

    效果贼好,生动了许多!

    还有上面说的“回到顶部”(和“锚点”),如果不想用js实现而且又不抗拒url后面的小小“#”的话,其实你可以这么实现:

    /** css样式 */
    html, body { scroll-behavior:smooth; }
    
    <a href="#">返回顶部</a>
    

    包括上面的“锚点效果”也可以这么来~

    perfect!


    元旦将至,提前祝各位元旦快乐,溜了溜了~

    展开全文
  • 我想回到以前的日子

    千次阅读 2012-09-22 08:38:05
    以前会为完成老师给的一个任务而兴奋不已的啊,而现在,我的那份热情到哪里去了,天天过着浑浑噩噩的日子,难道我真的想让老师去年的所有辛苦付之东流吗?难道我真的想让自己去年一切的劳动成果灰飞烟灭吗?难道这真...
            我是怎么了,升入大二后,真的是变懒了吗?还是,因为失去了一位时时叮嘱自己的老师,而再次放纵自己了那?以前会为完成老师给的一个任务而兴奋不已的啊,而现在,我的那份热情到哪里去了,天天过着浑浑噩噩的日子,难道我真的想让老师去年的所有辛苦付之东流吗?难道我真的想让自己去年一切的劳动成果灰飞烟灭吗?难道这真的是我想要的结果吗?难道CSDN也只能陪我一起走到这里了吗?我不要,好像回到以前的日子,做回那时愚蠢而又快乐充实的自己。
    
             大一的学弟学妹们啊,你们真的是幸福的哎,恭喜你们,可以得到贺老师这样的狂热分子,同样的,这也是我去年的幸运,像父母一样的啰嗦,会苦口婆心给你打电话的麻烦家伙,呵呵,你们会相信吗,在大学这个被放养的地方,竟然会有这样例外的出现。“你在开玩笑吧!不就是没定时做完指定的任务吗?也不至于在电话里唠唠叨叨和我探讨那么久吧,真的是烦死人了。”相信你们到时候,也许也会那么想吧,可是,这真的是让人高兴的事,似乎好久没体会到了,从老师那里来的关怀了,那可是会让人上瘾的哦,但又真的是让人费解,竟然会有那么傻的家伙,竟然会花尽心思时时关注你的动态,还会时时给你反馈,多么愚蠢的行为啊!有时真的想问问老师那,您这样不辛苦吗?在大学真的不至于做到对工作,对学生如此痴狂吧,您真的是笨蛋吗?可是,说真的,我打从心底敬仰您,能为学生做到这种程度,真的是把我们这群问题儿童当作自己的孩子那,可悲的雏鸟们,因为能有您这样为我们铺垫道路的老鸟而庆幸,感觉的到老鸟为了我们真的是费尽了心思,大一的一年才会那么充实而快乐的度过,我们这群雏鸟们才能少了些许迷茫,飞得更远了,也壮大了自己。可是,遗憾的,呵呵,似乎在大二的开始,有只菜鸟(雏鸟的稍高级)迷途了那!
    
             好了,现在整理整理心情吧,下定决心重回CSDN,有其父必有其子,呵呵有其老师也必有其学生吧,那么愚蠢的老鸟都有了,没有点同样愚蠢的菜鸟肿么行那,或许以后会感到辛苦吧,但也忍了。抱歉了,老师,差点辜负您一年的辛苦了,抱歉喽,CSDN,一起走过的战友,差点对朋友作出背叛的行为了。此时此刻,我回来啦~~~~~~~~~
    
    


     

    展开全文
  • block_device结构体从哪里来

    千次阅读 2011-12-15 18:35:33
    今天的比较晚,下班也相应要晚一些。吃完饭上来又看了一下代码,总算看清了一些关于block_device的眉目。 以前对block_device不解的是:何时分配它分配内存?曾经一阵狂追,发现了bdget这个函数。块设备的...

    今天来的比较晚,下班也相应要晚一些。吃完饭上来又看了一下代码,总算看清了一些关于block_device的眉目。


    以前对block_device不解的是:何时分配它分配内存?曾经一阵狂追,发现了bdget这个函数。块设备的核心数据结构应该是gendisk,block_device应该只是gendisk的一个容器。那么生成一个block_device应该是在找到gendisk之后的事。bdget这个函数只有一个参数:设备号。表面上来看,这个函数很正点,add_disk的时候将设备号与gendisk关联了,bdget根据设备号找到gendisk,然后做点脏活整出个block_device。一切跟所预想的一致。


    而实际上bdget根本没有鸟gendisk,如果之前为这个设备生成了bock_device,调用bdget会直接得到其缓存。如果是第一次使用块设备,bdget居然直接生成了一个block_device!没有gendisk的block_device只是一个空壳呀。


    今天又从头由sys_mount开始看一了遍。sys_mount要得到挂载点的inode,然后让指定的文件系统去读取superblock。而基于块设备文件系统的get_sb方法是利用get_sb_bdev。这个函数以块设备文件名为参数调用open_bdev_excl,从而得到了block_device,然后将block_device传给文件系统相关的函数填充super_block。很好,就是open_bdev_excl完成了从块设备文件名到block_device的转换。先设想一下实现:打开这个文件,得到inode,得到设备号,向系统查询与该设备号相关的的gendisk,生成block_device,将其与gendisk连接起来。钻进去看一下,差不多是做这些事,然而应该是很有条理的几个步骤却将拆得七零八落。lookup_bdev负责得到inode,bd_acquire为根据inode里的设备返回一个block_device。这个函数先看下缓存里有没有现成,没有就调用bdget生成一个(空壳!)。最后回到open_bdev_excl里,调用blkdev_get。这个函数又调用bdev fs里的辅助函数do_open,do_open里终于调用get_gendisk查询设备号对应的gendisk!这才应该是最核心的一步啊。做事的思路本来很清晰的,但被扭区成这样的代码牵着鼻子走,最終反而忘了看最初看代码的目的。


    当然,其中还有很多细节。不过看完这种代码不好好整理分析一下,除了记下冗长的函数调用流程以外,估计没什么收获吧。


    展开全文
  • 回到阔别两周的南京

    千次阅读 2014-11-29 01:24:28
    晚7点到了虹桥站 居然没票 ...另外2个房客居然也不知道跑哪里去了 见鬼 我在想提前买了星期天晚上回上海的票是不是太急躁了点 重开迅雷 一点速度也没有了 看来这宽带网络也没有什么用处了 娘的
  • 众所周知,乐视云是免费的,但是免费的东东呢,就是各式各样的问题啦,比如说文档写的不完善哇之类的,遇到问题求助,某度和gogo都无法搜出什么眉头。只能求助于QQ 群里的乐视官方技术。有时候问一下也要过很久才...
  • 走完同一条街,回到两个世界

    千次阅读 2013-08-08 14:53:32
    小时候跟着它们一起叫,用杆子粘着活好的面黏它们,虽然从来都捉不到,现在,它们还在叫,我却已经过了跟它们玩的年纪. 暑假回家呆了几天,上班,坐公交,下班,坐公交. 在公司里清清爽爽几乎忘了这是夏天,下班了一出门喘...
  • 回到北京,有了到家的感觉

    千次阅读 2006-06-14 19:53:00
    回到北京,有了到家的感觉 这次出门,是到北京定居以来最长的一次。南京算是第二次,武汉则是首次。在南京停留的时间较长,我们的运气还不错,这个期间南京的气候还可以,没有感觉到什么不适。年轻人出门,总是...
  • 回到原点——由调试gprs想到的

    千次阅读 2012-04-14 14:05:02
     客户拿一个机器给我调试,语音业务电话很快就打通了,但是数据业务一直起不。跟所有问题一样,碰到问题的时候,往往觉得无处下手,看起来满地都是线索,就是找不到头绪在哪里。这是,冷静下来思考是最重要的,...
  • 但有一个致命的问题,就是我的压栈操作写在了子程序里,然而别忘了,ret指令会栈顶弹出元素给IP,也就是下一条要执行的指令的地址,但我却push了其他东西把原来保存的地址给压到下面了,导致ret执行
  • 美国人的钱大都花到哪里去

    千次阅读 2012-12-28 12:51:31
    美国人的工资高,用于生活必需品的消费又比较少,到头还欠了一屁股债,那么,他们的钱都到哪里去了呢?用一个非常形象的描述就是,主要花在个人生活的“维稳”费用上了。 美国人用在生活必需品上的消费很少,...
  • 前言因为朋友的一个问题引发了对这个问题的探索,当然一如既往的先百度了一把:”锁定屏幕 activity的生命周期“,结果看了2篇比较靠前的帖子: 1、android锁屏和finish()后activity生命周期的变化 2、关于...
  • 地震后,我终于回到了家

    万次阅读 2008-10-12 05:41:00
    那几天的车都免费,你站在路边的话就会问你想去哪里,顺路载你一段或者直接载你; 后来来了很多的部队,"一半的人都不参与救援,而是说负责治安";很多救援的士兵工具缺乏,有的一双棉线手套都没有; "很多时候大家都不动...
  • 在坐火车、坐动车的时候难免会几趟厕所,与小编一样,估计大家对于厕所的排泄物的处理都有些疑惑,到底这些排泄物去哪里了?坐过K字头,T字头以及绿皮火车的小伙伴应该都会发现一个问题——火车进站停车时,厕所是...
  • 的更加丰富。 Choose Experience over Material Possessions 比物质享受更重要的是经验 If you're ever faced with the choice of upgrading your lifestyle (an apartment by yourself, a new car, new clothes...
  • 揭秘终南山隐士:在山中修炼完后还回到红尘中 2012年02月21日 07:28 来源:光明网 字号:T|T 1028人参与30条评论打印转发  2月12日张剑峰给山上带了一个坛子,以便做泡菜。本组图片由...
  • 所有漂亮的代码跑哪里去了?

    千次阅读 2006-06-12 17:12:00
    所有漂亮的代码跑哪里去了?作者:cleverpig正文:06年5月9日在拉斯韦加斯举办了ServerSide Java 会议。会上,Gregor Hohpe对一位Java高手说,每个软件开发团队只雇佣最好的最优秀的程序员,这肯定是对的。Google公司...
  • 我带你去哪里 IX

    千次阅读 2010-10-11 11:21:00
    那里的小朋友们每天幼儿园回家,如果想起什么新鲜有趣的事情要和其他小朋友分享,就会一下子出现在那个小朋友旁边,赶快说几句,消失,再出现说几句,再消失,就这样一次一次的边聊边消失. 吃饭的时候出现这种情况,是让...
  • 回想毕业到现在自己的一些变化,技术上几乎啥都不会到现在会写一点代码,心态上非常迷茫焦虑到现在有自己的节奏,头发毕业的茂盛浓密到现在的欠茂盛浓密,这些年的经历,还是需要写一篇文章回顾一下的,...
  • Linux内存被吃掉了,它去哪里了?

    千次阅读 2018-06-06 14:24:32
    在Windows下资源管理器查看内存使用的情况,如果使用率达到80%以上,再运行大程序就能感觉到系统不流畅了,因为在内存紧缺的情况下使用交换分区,频繁地磁盘上换入换出页会极大地影响系统的性能。而当我们使用free...
  • 记得csdn一出来的时候,就曾经在这里混过,现在又回来了,把blog弄一个在这里,作为备份用。 
  • 一线城市滚回二线三线城市的筒子们,你们重新找到新的生活经历了多久? 原标题:为了以后小孩的成长,留在大城市好还是回到老家三线城市好? 留在大城市,小孩的视野会比较宽,见识的多一些,周围人的层次也...
  • 那么,空间哪里去了呢?强忍着耐心,将卡上全部文件圈起来,右键属性,等了10分钟,出来一个结果: 哦买糕的,20GB的资料,居然占了50GB的空间,怎么会占这么大的空间?占用空间一般会比文件大小大些,这我...
  • 感兴趣的朋友可以查一下forced synchronous layout,用chrome调试工具中的TimeLine测试页面的性能,他会告诉你,哪里是性能的瓶颈。   想法二:但即使知道这些,我当时还是没能理解大神的两条建议,我只是在想...
  • 1.钟表,可以回到起点,却已不是昨天。  2.使人成熟的是经历,而不是岁月。  3.少一点预设的期待,那份对人的关怀便会更自在。  4.有一种伤叫悲伤,是睫毛再也承受不住泪球的重,轻轻碰到就会滴落。  5.互相...
  • 现象:在Ubuntu登陆界面输入密码之后,黑屏一闪,又... ... 说明:Xauthority,是startx脚本记录文件。Xserver启动时,读文件~/.Xauthority,读入对应其display的记录。当一个需要显示的客户程序启动调用XOpenDisplay
  • 到达公司刚好是9点30分,长安街又交通管制了。开会,部门经理主持,这意味着这个项目团队里要出事情,果然,部门经理...巨大的落地玻璃往外看,对面来福士的楼顶泳池里,一个年轻的女人正在舒缓的仰泳,她是谁?
  • 在这个世界 你的盼望在哪里

    千次阅读 2013-12-15 13:53:26
    他们说你会养猪吗 会的话就可以留下来帮助他们 但是他不会 于是他回到台湾 花了一年多的时间学习如何养猪 然后他又到四川 留在那里了。  我却把我研究生的身份看得这么重 苦逼的堆代码 然后到公司继续堆代码 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 94,702
精华内容 37,880
关键字:

从哪里来回到哪里去