How to implement scroll to a section/fragment on click in Liferay? - liferay

I want to implement scrolling to a particular section on click in Liferay, but I have no idea how to add functionalities in Liferay.
I have created a page using multiple fragments and in the top of the page I have headers of the sections and on click of a header the page should be scrolled to that particular section.
Attached page screenshot link below for reference

The easiest way to scroll to some place on the page is to place an anchor there, e.g. with <a name="scrollTarget"/>. In your navigation, you'll just link to this by Scroll to Target and you're set.
Of course, this can be done a lot fancier, with an animated scroll etc, but the basic start is this. There's nothing Liferay-specific hidden here - pick any of the more fancy methods, create fragments with the proper markup, and make sure they're used on your page.

Related

How to create a user-impaired accessible website: surfing without a mouse?

I have created a webpage using Backbone.js and Marionette.js that mostly consists of a bootstrap accordion view that displays a list of items when the accordion header is clicked. Each item can also be clicked, which will show a hidden div of detailed information that pertains to that particular item.
I would like to make this site accessible to people who might not be using a mouse (Maybe they're visually impaired and using a screen reader? Maybe they just don't like clicking things? Either way.) I'm thinking that this would mean being able to press the Tab key to get to the accordion, pressing Space or Enter to open the accordion, Tabbing down (or down arrow key?) through the list items, and then using Space or Enter to show the selected item's hidden div.
I'm finding it difficult to find information on how to add a feature like this, since searches like "How to make an accessible website that can be used without a mouse" mostly turns up blogs on what a developer should do to add accessibility to a page, and not much on how to do it.
Currently, the page doesn't really respond to any keyboard buttons. Any tips or resources you could share would be extremely appreciated. I've been fiddling with ARIA role tags, but I'm either not doing it right or it's not the answer here.
You have to use tabindex
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.tabIndex
Screen readers automatically read whatever element is the activeElement

Google Chrome Extension Development

I am developing a chrome extension that would like to add a tab at the bottom of the page to manipulate DOM elements. Chrome 'manifest.json' file doesn't provide such feature. So how to do it or rather how does Firebug add a tab at the bottom of the Chrome?
I would suggest inserting a panel in every page through a content script. You can style it in order to appear at the bottom of the page and be always visible.
In order for it to retain its state between navigation from one page to another, you need to persist it some how (example use chrome.storage or a similar mechanism through the background page to persist the content (or whatever you need).
See this answer on how to insert (and style) a toolbar-like div or iframe in a page through a content script. (It is fixed to the top of the page, but you can easily modify the code to fix its position at the bottom.)

Hiding Menu System

I'm looking for some code on how to create a hiding menu. Basically I'd like to have four links in a horizontal menu. When you click on a link I'd like it to hide the others perhaps above or below to provide a text box. This box would also have information in it that we be inputted by the designer only.
I have a link to preview a template for an example below:
http://www.graphicalwonders.com/archives/brian/Homepage.jpg
jQuery UI -
Accordion API -
Viral Patel
Check out these links for examples of Accordion menus. I find the Viral one to be easier to use, however the jQuery UI & API explain more in detail how it works.

SharePoint 2007 navigation and removing its delay

In SharePoint 2007, there's a top nav that the user can hover over, which reveals a dropdown menu of subitems. When they remove their mouse from the dropdown, it disappears, but only after a short delay. This can cause problems, as if people are trying to click a link on the page somewhere, but the nav menu hasn't hidden itself yet, they'll accidentally click it instead. This is compounded with the fact that the menu appearing in the first place is delayed as well, so right before they mouse over the link on the page they actually want to click, the menu will suddenly appear and intercept their click when they weren't meaning to.
I've poked at core.js at some suspect areas, but can't seem to nail it down. Any thoughts?
This is the normal behaviour of SharePoint. This control is the asp:Menu control of ASP.Net 2.0 and the only thing you can do is customized the MasterPage or the DefaultPage of your Site.
If you change the core.js file of "layouts" folder you'll lose Microsoft support, so take care about change any of the file from this folder.
I recommend that you modify the existent control or create a new one and put it in this position of the MasterPage.
This bit of CSS will fix it. I just had the same thing in sharepoint 2010 and this was all that was required to make the list disappear as soon as you roll off:
li.hover-off>ul
{
display:none;
}
The way it works is when you hover over an item in the nav it adds a css class called "hover" and as soon as your mouse leaves the area it changes the class to "hover-off" for 1 second before removing it completely. This CSS will hide the unordered list directly below the list item that has the class "hover-off" thus hiding the flyout as soon as your mouse leaves the parent.

ModalPopupExtender adding scrollbars in SharePoint

Whenever I show a ModalPopupExtender on my Sharepoint site, the popup shown creates both horizontal and vertical scrollbars. If you scroll all the way to the end of the page, the scrollbar refreshes, and there is more page to scroll through. Basically, I think the popup is setting its bounds beyond the end of the page. Has anyone run into this? Searching Google, it seems this may be a known problem, but I haven't found a good solution that doesn't include recompiling AJAX, which my boss will not allow.
Hacky answer would be to grab the IE Developer Toolbar, find the tag that has the scrollbar, and alter your CSS file to add the overflow:hidden property to it.
I assume the TargetControl is of sufficient size to hold everything you put in it? If so, try:
Set CSS overflow:hidden;
If the target control is a Panel, set scrollbars="none". Otherwise, put it in a panel and try it.

Resources