123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- <!DOCTYPE html>
- <html>
- <!--
- Copyright 2008 The Closure Library Authors. All Rights Reserved.
- Use of this source code is governed by the Apache License, Version 2.0.
- See the COPYING file for details.
- -->
- <!--
- -->
- <head>
- <title>ScrollFloater</title>
- <script src="../base.js"></script>
- <script>
- goog.require('goog.dom');
- goog.require('goog.events');
- goog.require('goog.ui.ScrollFloater');
- goog.require('goog.ui.ToggleButton');
- </script>
- <link rel="stylesheet" href="../css/button.css">
- <style>
- table {
- border: 1px solid black;
- width: 100%;
- height: 1500px;
- }
- .left-cell {
- color: black;
- background-color: lightgray;
- width: 33%;
- vertical-align: top;
- }
- .cell {
- background-color: lightblue;
- width: 33%;
- vertical-align: top;
- }
- .spacer {
- border: 1px solid black;
- height: 200px;
- }
- .goog-scrollfloater {
- border: 1px solid black;
- height: 150px;
- width: 90%;
- color: black;
- background-color: blue;
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a4e7fc), color-stop(100%,#00aadd));
- background: gradient(linear, left top, left bottom, color-stop(0%,#a4e7fc), color-stop(100%,#00aadd));
- }
- #floater3 {
- padding-top: 500px;
- }
- </style>
- </head>
- <body>
- <form action="javascript:void(0)">
- <table style="border: 1px solid black">
- <tr>
- <td class="left-cell">
- <div class="spacer">
- This content does not float.
- </div>
- <div class="spacer">
- This content does not float.
- </div>
- <div id="floater1">
- This floater is constrained within a container and has a top offset of 50px.
- </div>
- </td>
- <td class="cell">
- <div class="spacer">
- This content does not float.
- </div>
- <div id="floater2container">
- </div>
- </td>
- <td class="cell">
- <div class="spacer">
- This content does not float.
- </div>
- <!-- The purpose of this position:relative element is to ensure that
- we're checking more than just the offsetTop of the floating
- child. -->
- <div style="position: relative">
- <div id="floater3">
- This floater is very tall.
- <p>
- This tall floater is pinned to the bottom of the window when
- your window is shorter and floats at the top when it is taller.
- </div>
- </div>
- </td>
- </tr>
- </table>
- <div style="height:1500px"></div>
- <p>This is the bottom of the page.</p>
- </form>
- <script>
- var parentForm = document.getElementsByTagName('form')[0];
- var scrollfloater1 = new goog.ui.ScrollFloater();
- var button1 = new goog.ui.ToggleButton("Enable Floater 1");
- button1.render(goog.dom.getElement('floater1'));
- scrollfloater1.setViewportTopOffset(50);
- scrollfloater1.setContainerElement(goog.dom.getElement('floater1').parentElement);
- scrollfloater1.decorate(goog.dom.getElement('floater1'));
- var scrollfloater2 = new goog.ui.ScrollFloater();
- var button2 = new goog.ui.ToggleButton("Enable Floater 2");
- scrollfloater2.addChild(button2, true);
- scrollfloater2.render(goog.dom.getElement('floater2container'));
- var scrollfloater3 = new goog.ui.ScrollFloater();
- scrollfloater3.decorate(goog.dom.getElement('floater3'));
- function setupClickHandler(ctrl, floater) {
- goog.events.listen(ctrl, goog.ui.Component.EventType.ACTION,
- function() {
- floater.setScrollingEnabled(ctrl.isChecked());
- });
- }
- button1.setState(goog.ui.Component.State.CHECKED, true);
- button2.setState(goog.ui.Component.State.CHECKED, true);
- setupClickHandler(button1, scrollfloater1);
- setupClickHandler(button2, scrollfloater2);
- </script>
- </body>
- </html>
|