JavaScript - Floating Sidebar -- How Does Mashable Do It?
On Mashable's site, in their post pages (not the home page), there's a floating widget to the left of the content that descends as you scroll down below the fold, but doesn't ascend above a certain point.
I'd love to replicate this, but their site is so clogged with code that I'm having a really hard time parsing apart the (javascript) scripting that's controlling this. Thoughts or any help identifying the moving parts? Similar TutorialsHi. I haven't used much Javascript before and I have a question about the following code. I've taken it from this tut and changed it a bit so it applies an expand/collapse functionality to a floating sidebar on the side of a website I'm working on. When I remove the background on the toggle function, it refuses to come back. I have a feeling it's a simple solution, I just don't know what syntax to fill into the second part of the conditional to restore the background image. I've tried display, show, an actual path to the image... Code: <script language="JavaScript" type="text/javascript"> function toggle() { var bar = document.getElementById('floater'); var barText = document.getElementById('f_news'); if (bar.style.width == '210px') { bar.style.width = '40px'; bar.style.backgroundImage = 'none'; barText.style.display = 'none'; } else { bar.style.width = '210px'; bar.style.backgroundImage = 'HELP!'; barText.style.display = 'block'; } } </script> Thanks in advance. Hello. I'm looking to add a "widget" to a website, but do not want to add to every page. Is there a way to add it to the main page and the entire site displays it. The site has many static pages I want to use something like what is displayed on this website: http://www.livezilla.net/home/en/ The live chat link on the left hand side. Please see the design. I want that when user click on "Vyrobce" on top this change design chage according to the design. To see the code please visit this link: http:// jordanek.eu/aktual/index6 dot html Please help me to fix it. Thank you. N.B. I use boostrap collapse javascript function for this section: http:// getbootstrap dot com/javascript/#collapse Hello, I need some help to insure that this: Code: <?php if ( is_404() || is_category() || is_day() || is_month() || is_year() || is_search() || is_paged() ) {?> <li> <?php /* If this is a 404 page */ if (is_404()) { ?> <?php /* If this is a category archive */ } elseif (is_category()) { ?> <?php /* If this is a yearly archive */ } elseif (is_day()) { ?> <?php /* If this is a monthly archive */ } elseif (is_month()) { ?> <?php /* If this is a yearly archive */ } elseif (is_year()) { ?> <?php } ?></li> <?php }?> </ul> <ul role="navigation"> <li><h2>Nyheder</h2><ul><?php wp_get_archives('type=monthly'); ?></ul></li> </ul> <ul><?php /* If this is the frontpage */ if ( is_home() || is_page() ) { ?> <li> <ul><?php wp_meta(); ?></ul> </li> <?php } ?> <?php endif; ?> </ul> Only appear on this page: http://finmand.dk/almastofa/nyheder-2 And if possible, how I can clean it up a bit, since there is stuff in there I don't think I need. I would like it to only be "Nyheder", under this there shall be (as now) a list of post, shown by which month they where made. Any help or advice would be helpful. Thanks Hello, I had this working in v2, but I'm migrating to v3 and I'm having some trouble with my sidebar. I think it might be variable scope problem, but I can't find the answer. I have a form which appends entries to an xml file, and my map script imports the xml to create markers and infowindows (all working). Functions to close the infowindow and recenter the map all work as well. It should also display a clickable sidebar with the names of the markers as links. It displays a side bar, but I only get one line which says 'undefined'. Here is my code: Code: var infowindow = new google.maps.InfoWindow(); var map = new google.maps.Map(); var side_bar_html = ""; var gmarkers = []; var shortname; var marker; function initialize() { var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","rp4.xml",false); xmlhttp.send(); xmlDoc = xmlhttp.responseXML; var markers = xmlDoc.getElementsByTagName("marker"); var point = new google.maps.LatLng(40.8068620, -96.6816790); var myOptions = { /* center: new google.maps.LatLng(40.8068620, -96.6816790), */ center: point, zoom: 4, mapTypeId: google.maps.MapTypeId.ROADMAP, /* mapTypeControl: True, mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU} */ }; // create the map map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); function bindInfoWindow(marker, map, infowindow, nfo) { google.maps.event.addListener(marker, 'click', function() { infowindow.close(); infowindow.setContent(nfo); infowindow.open(map, marker); map.panTo(marker.getPosition()); // map.setCenter(new google.maps.LatLng(lat,lng); map.setCenter(marker.getPosition()); }); } // document.getElementById("side_bar").innerHTML = side_bar_html; for (var i = 0;i<markers.length;i++) { var lat = parseFloat(markers[i].getAttribute("lat")); var lng = parseFloat(markers[i].getAttribute("lng")); point = new google.maps.LatLng(lat,lng); shortname = markers[i].getAttribute("company"); var company = markers[i].getElementsByTagName("company")[0].firstChild.nodeValue; var contact = markers[i].getElementsByTagName("contact")[0].firstChild.nodeValue; var str = markers[i].getElementsByTagName("str")[0].firstChild.nodeValue; var city = markers[i].getElementsByTagName("city")[0].firstChild.nodeValue; var phone = markers[i].getElementsByTagName("phone")[0].firstChild.nodeValue; var email = markers[i].getElementsByTagName("email")[0].firstChild.nodeValue; var web = markers[i].getElementsByTagName("web")[0].firstChild.nodeValue; var nfo = "<h1>"+company+"</h1>"+ "<p><b>"+company+"</b><br />"+ contact+"<br />"+ str+"<br />"+ city+"<br />"+ phone+"<br />"+ "<a href='mailto:"+email+"'>"+email+"</a></p>"+ "<a href='http://"+web+"'>"+web+"</a>"; marker = new google.maps.Marker({ position: point, map: map, title: company, clickable: true, }); marker.setMap(map); bindInfoWindow(marker, map, infowindow, nfo); } document.getElementById("side_bar").innerHTML = side_bar_html; } function myclick(k) { google.maps.event.trigger(gmarkers[k], "click"); // save the info we need to use later for the side_bar gmarkers.push(marker); // add a line to the side_bar html side_bar_html += '<a href="javascript:myclick(' + (gmarkers.length-1) + ')">' + shortname + '<\/a><br>'; return marker; } Hi, I have a sidebar application, When a user click on the IM icon inside the sidebar, a Pop up window will open. When closing this child Pop up window, the sidebar hangs. When I tried to repoen the Popup window again, the Pop up window also hangs for a long time. But I can not find the exact reason behind this hanging of sidebar, after closing the Pop up window. Also this issue is only exists in main server. In my local server its working fine. Also I am using JavaScript caching for main server. Thanks Raju I bet you all hate WordPress questions (sorry!) but the WordPress support forum is useless. I use the Sandbox theme, which has two sidebars, but they are both on the left hand side, one on top of the other. Can anyone explain how I can either move one of these sidebars to the right hand side? Or how I can create a new sidebar and put it on the right hand side? I've tried editing the theme code myself. My blog is http://www.ieltsielts.com Thanks in advance. I am not very knowledable in stuff like this, and thought I would try to do it to help out a friend. I found a code from the internet and used it and it works well, but only in a specific resolution. I need to have the nav bar start and a specific point in the page and the code I have uses X and Y coordinates to place it. I can mess with it to get the right coordinates for a certain resolution, but I want it to work for every resolution someone who views it is using. here is the script Code: <script type="text/javascript"> /* Floating Menu script- Roy Whittle (http://www.javascript-fx.com/) Script featured on/available at http://www.dynamicdrive.com/ This notice must stay intact for use */ //Enter "frombottom" or "fromtop" var verticalpos="frombottom" if (!document.layers) document.write('</div>') function JSFX_FloatTopDiv() { var startX = 107, startY = 395; var ns = (navigator.appName.indexOf("Netscape") != -1); var d = document; function ml(id) { var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id]; if(d.layers)el.style=el; el.sP=function(x,y){this.style.left=x;this.style.top=y;}; el.x = startX; if (verticalpos=="fromtop") el.y = startY; else{ el.y = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight; el.y -= startY; } return el; } window.stayTopLeft=function() { if (verticalpos=="fromtop"){ var pY = ns ? pageYOffset : document.body.scrollTop; ftlObj.y += (pY + startY - ftlObj.y)/8; } else{ var pY = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight; ftlObj.y += (pY - startY - ftlObj.y)/8; } ftlObj.sP(ftlObj.x, ftlObj.y); setTimeout("stayTopLeft()", 10); } ftlObj = ml("divStayTopLeft"); stayTopLeft(); } JSFX_FloatTopDiv(); </script> I just need to make it work for every resolution. What the X and Y are set to only work for 1024x768 resolutions. There is a certain spot it needs to start at and if you need the website then please ask if it is needed. So can anyone help? I have this var set: var floatingMenu = { targetX: -270, targetY: 13, hasInner: typeof(window.innerWidth) == 'number', hasElement: document.documentElement && document.documentElement.clientWidth, menu: document.getElementById ? document.getElementById(floatingMenuId) : document.all ? document.all[floatingMenuId] : document.layers[floatingMenuId] }; I want the number to be assigned to targetX (the red part) to be different for Firefox, Chrome or Internet Explorer. How do i do that? <font color="#ffff00">dfgdfgdf <font color="#ff6600">dfgdfgdfg xfgdfg</font></font><font color="#ffff00"></font>
I have this var set: var floatingMenu = { targetX: -270, targetY: 13, hasInner: typeof(window.innerWidth) == 'number', hasElement: document.documentElement && document.documentElement.clientWidth, menu: document.getElementById ? document.getElementById(floatingMenuId) : document.all ? document.all[floatingMenuId] : document.layers[floatingMenuId] }; I want the number to be assigned to targetX (the red part) to be different for Firefox, Chrome or Internet Explorer. How do i do that? Hi everybody Im new here and javascript newbie ,so I need your helps I want to use a left floating banner on my site www.guruht.com so the floating banner don't cover any text content when a visitor zoom in the page or use a very low resolution like 800x600 or 1024x700. this is the code I use but the banner cover the text : Code: <style> #floating_banner_bottom { text-align: left; width: 00%; bottom: 00px; margin-bottom: 0px; height: 50px; position: fixed; z-index: 50; left: 0px; </style> <div id="floating_banner_bottom"> <!-- Button to Close Banner --> <a style="display:scroll;position:fixed;bottom:50px;left:0px"> banner code <br /> <div class="close"> <a href="#" onclick="document.getElementById('floating_banner_bottom').style.display='none';return false;"> <i style="font-family: Georgia,"Times New Roman",serif;"><span style="background-color: #999999; color: white; font-size: small;"></span></i> <center> <img border="0" width="20" height="20" src="http://lh5.ggpht.com/_9vgJ1nwu_xA/S1jSp2ZhA7I/AAAAAAAAB8A/2AEBd4mR9qA/x.png" /> </center> </a> </div> <a/> </a></a></div> <!-- End Here --> Hello all from Romania, I tried few hours yesterday to edit the javascript settings because I want to be displayed once per session. If you can help me, or edit because I know it's very simple but for me... isn't the same thing. This is the code I want to be displayed once per session, and IF you can to close after x seconds, but important is once per session. Quote: <style> #topbar { height:30px; width:auto; background: #005094 url('http://lh3.ggpht.com/_beEpWOXwLJE/TIb57Lu4fwI/AAAAAAAABE0/q7niFVRbyNE/top-toolbar.jpg'); background-repeat:repeat-x; text-align:left; padding-top:4px; } #adsground { height:auto; margin:0 auto; width: 310px; background:#fff; border-bottom:2px #005094 solid; border-right:2px #005094 solid; border-left:2px #005094 solid; text-align:Center; padding:4px; } #headlineatas { margin-left:85px; opacity:1.0; height:auto; width:auto; position:fixed; top:65px; left:170px; border-bottom:1px #005094 solid; border-bottom:0px blue solid; color:#333; padding:0px; z-index:1001; font-size:13px;} </style> <script type="text/javascript"> function getValue() { document.getElementById("headlineatas").style.display = 'none'; } </script> <div id="headlineatas"> <div id="topbar"> <span style="color:#fff;font-size:13px;font-wegight:bold;text-shadow:black 0.1em 0.1em 0.1em">Asculti AlyceRadio.</span> <span style="color:#fff;font-size:13px;font-weight:bold;text-shadow:black 0.1em 0.1em 0.1em;float:right;padding-top:3px;padding-right:10px"><a href="http://www.google.ro/" target="_blank" onclick="getValue()">X</a></span> </div> <div id="adsground"> <p align="left"><h3></h3></p> another text here <p> </p></div></div> Thanks ! i want to make a floating menu.. but the administrator want it to be selected from database... Does anyone have an idea? or how to make it? also i want to know if it can be done or not???? Hi all, I wasn't sure of the proper search terms to use to find an answer in the JS forums. I'm trying to create a floating navigation bar which only becomes visible at a certain scroll point on a page - specifically, when the static navigation row is scrolled out of view. I have a floating navigation bar already. And I suspect I'd need to give the static menu an ID to reference in the JS. I'm just not certain on how to proceed. Any help would be greatly appreciated. Thanks. Hi I'd like to know how this site (linked below) does their floating share box on the left side. I notice it starts from a certain position and then it gets pushed down along with the top of the window when the user scrolls down pass that point, sticking to the top. Is there an external js recalculating the top value as the user scrolls down? Any idea on how I can do the same effect? http://hypebeast.com/2010/05/gp-jean...er-collection/ Thanks in advance for any help, much appreciated. Hello everyone, I've been looking for a script that will float my website navigation bars within a table or table cell. I can find scripts that will float down the whole page but obviously thats not as I want it. If anyone knows of one that fits what I want or knows whether it is even possible then I would be very grateful if you could let me know either way. I need a back to top link on the bottom of my page that stays there all the time while people are scrolling.. is this possible? is this close to what i'm looking for? http://javascript.internet.com/page-...ting-link.html i've seen it on some other sites but I can't find any to reference now... I'm totally new to this! thanks for your help! -B Hey all, For the below code, I'm just trying to create a simple toggle menu for a Table of Contents. However, when page loads, I get document.gelementbyid('sidebar') is null even though it's clearly there and if I move script to below markup, it will also give me a hideElements() is not a function error, even though it clearly is. Code: <script type="text/javascript"> (function(){ var headers = document.getElementById("sidebar").childNodes; for(var i=0; i < headers.length; i++){ hideElements(headers[i]); if(headers[i].nodeName == "h1"){ headers[i].childNodes[0].onclick = function(){ hideElements(headers[i]); this.parentNode.nextSibling.style.display = "block"; return false; } } } var hideElements = function(element){ if(element.nodeName == "UL") element.style.display = "none"; } })(); </script> <body> <a name="top"></a> <div id="masthead"> <h1>This is the Help Page</h1> </div> <div id="sidebar"> <h1><a href="chapter1"> Info</a></h1> <ul> <li><a href="#section1">Section 1</a></li> <li><a href="#section2">Section 2</a></li> <li><a href="#section3">Section 3</a></li> </ul> <h1><a href="chapter2"> Info</a></h1> <ul> <li><a href="#section4">Section 4</a></li> <li><a href="#section5">Section 5</a></li> <li><a href="#section6">Section 6</a></li> </ul> </div> <div id="content"> <h1 id="section1">Section 1</h1> <p> </p> <a href="#top">Back to Top</a> <h1 id="section2">Section 2</h1> <p> </p> <a href="#top">Back to Top</a> <h1 id="section3">Section 3</h1> <p> </p> <a href="#top">Back to Top</a> </div> </body> Thanks for any response. Hi Guys, I'm wondering if anyone knows of some simple javascript that allows me to create a floating image rollover enlargement, similar to the ones on the homepage of ThemeForest. I've been Googling for hours, so, if anyone knows of a script, i'd be much appreciative. Thanks, Christian |