Is it possible to prevent a uiwebview from scrolling around, but to also have a div that can scroll?
I have a jquery navbar and want a scrollable div underneath with many images. I'd like to be able to scroll through the images while the navbar remains fixed.
Initially the whole webview was moving around so I used this to stop all scrolling.
webView.scrollView.scrollEnabled = NO;
but now I want the div to still be scrollable.
I have the div style set to
overflow:auto
but it does not seem to move.
I had the wrong div set to overflow:auto.
So it worked after setting the correct one to scroll.
Related
There's a collapsible sidebar on my webpage. When I collapse it, I want the svg element on the page to resize to take up all of the new blank space.
The function that resizes the svg is working. However, it is not being triggered when the sidebar is collapsed.
I have tried:
d3.select("#mydivHoldingSVG").on("resize", MyResize)
Where #mydivHoldingSVG is a <div> and MyResize is the function to resize the svg.
When the sidebar is collapsed, the <div> element increases in size (as inspected via Google Chrome developer view), which I thought constituted a "resize".
If the window is resized, that is, if I use:
d3.select(window).on("resize", MyResize)
Then the svg resizes correctly.
I have looked at the list of standard events to see if one can be applied to the div element (#mydivHoldingSVG) but I'm not seeing an obvious "when a div element changes" event.
Is there an eventListener that can be added on a <div> element being resized or changed?
The gist is that you should do it another way: the resize event only pertains to the window and will not fire on any other element.
The cleanest way to solve this problem would be call MyResize when you call whatever function is collapsing your sidebar, rather than trying to indirectly listen for the sidebar being collapsed.
I have a popover that works perfectly fine with Safari, Chrome and IE but doesn't work in Firefox, (it doesn't appear).
I have created a jsfiddle to illustrate the problem:
https://jsfiddle.net/sregorcinimod/7x4vuwLr/8/
When you click on the blue rectangle a popover should appear.
The problem line is the fact that i have a position:absolute on the svg
#spacing svg{
max-width:100%;
position:absolute; //this is the line that is causing issues
bottom:0px;
}
If I remove that line the popover appears but I need that in for other things.
The constraints are:
I need to have position:absolute on the svg due to other more complex things that aren't in the jsfiddle i.e. responsive positioning of multiple layered svgs.
I need the trigger to be focus and not click because I need the popover to be dismissed when the user either clicks on the x in the title or anywhere in the browser window.
Things I have tried:
wrapping the svg in a div.
changing the container.
Add a tabindex attribute to the rect e.g. tabindex="0"
I am using TextArea tags in my web project, that shall never show scrollbars.
This can easily be accomplished using
TEXTAREA { overflow: hidden }
All browsers that I need (IE, FF, Chrome) hide the scrollbars, as intended.
However Internet Explorer and Chrome will scroll to the current cursor position anyway, while Firefox does not scroll anymore at all. You can move the cursor into the invisible area and type, but you will not see, what you are doing.
Can this be solved?
Regards,
Steffen
EDIT: Because I have not found the source of the problem and I would really like to solve this, I leave this question open. However I found a really bad workaround: We now use overflow: scroll on that TEXTAREA, put it into a DIV, measure the width and height of the horizonal and vertical scrollbars, increase the size of the TEXTAREA by that values and set overflow:hidden to the DIV effectivly clipping away the scrollbars. They get invisible to the user but Firefox still scrolls. Not nice but working.
As far as I can tell, Firefox is behaving as I'd expect given the semantics behind overflow:hidden.
That said, and having read your comments above, you can quite easily mimick the behaviour you want with a small bit of jQuery.
Here's the code I've written:
$('textarea').bind("focus keyup", function(){
var $current = $(this);
$current.scrollTop(
$current[0].scrollHeight - $current.height()
);
});
This will basically scroll the textarea to the bottom when you focus on it and as you type. It may need tweaking to account for edits being done further up in the content.
Here's a Working Demo
I have a page with a couple DIVs with contents loaded via ajax. After the contents loaded, the page doesn't dislay the scrollbar to show all the DIV contents (I can't scroll down to see the rest of the content.) I tried with Firefox and IE. All have the same problem. Is there away I can fix this?
Did you try to set style on the div or class?
overflow: auto;
Without seeing the HTML and CSS, all I can offer is a few suggestions:
Maybe you have unclosed tags.
The div style might prevent correct display. What's the overflow set to?
If you're loading into a div that's in a document in an iframe, you get this kind of stuff a lot.
Can you scroll around the div with TAB or by mouse-selecting its contents? Maybe the content isn't even being loaded fully.
In CSS I had the position of the div as fixed
div.query_res{
position:fixed;
top:40px;
left:445px;
}
changed it to
div.query_res{
position:relative;
top:40px;
left:445px;
}
And all was good.
This is quite old, but just in case some else gets here, as me, you have to redraw the page, as the calculations to add a scroll has been already made. So you have to tell the browser to redraw as the content size has changed. You can test if this is the case by changing the size of the window, if doing so gets back the scroll bar, then redraw after generating the DIV or whatever you are generating.
I fixed the way the content was being pushed down with using the +position:absolute !important; hack that i've found. But now my question is no matter how i style the top (in the jqmWindow in IE it still seems to popup the window in the middle of the page. In FF however i've gotten the page to be more towards the top. The reason why i need to move this jqm window is that there is more info on the div (jqm) then will fit on the screen. Is there a way just to make the window a certain size and have scroll bars on the side if the content is larger? Thanks for the help.
you should be able to wrap the contents of the window in a div and set it's height, as well as overflow
div.wrap{
height:220px;
overflow:scroll;
}